Проверочная работа по основам программирования на Python. Урок 15

Основы программирования на Python

Задание 1

Напишите код по следующему словесному алгоритму:

  1. Попросить пользователя ввести число от 1 до 9. Полученные данные связать с переменной x.
  2. Если пользователь ввел число от 1 до 3 включительно, то ...
    * попросить пользователя ввести строку. Полученные данные связать с переменной s;
    * попросить пользователя ввести число повторов строки. Полученные данные связать с переменной n, предварительно преобразовав их в целочисленный тип;
    * выполнить цикл повторения строки n раз;
    * вывести результат работы цикла.
  3. Если пользователь ввел число от 4 до 6 включительно, то ...
    * попросить пользователя ввести степень, в которую следует возвести число. Полученные данные связать с переменной m;
  4. * реализовать возведение числа x в степень m;

    * вывести полученный результат.

  5. Если пользователь ввел число от 7 до 9, то выполнить увеличения числа x на единицу в цикле 10 раз, при этом на экран вывести все 10 чисел.
  6. Во всех остальных случаях выводить надпись "Ошибка ввода".

Задание 2

Напишите программу, которая бы выполняла следующие задачи:

  1. выводила название программы "Общество в начале XXI века";
  2. запрашивала у пользователя его возраст;
  3. если пользователь вводит числа от 0 до 7, то программа выводила надпись "Вам в детский сад";
  4. от 7 до 18 - "Вам в школу";
  5. от 18 до 25 - "Вам в профессиональное учебное заведение";
  6. от 25 до 60 - "Вам на работу";
  7. от 60 до 120 – "Вам предоставляется выбор";
  8. меньше 0 и больше 120 – пятикратный вывод надписи "Ошибка! Это программа для людей!"

В программе желательно использовать все "атрибуты" структурного программирования: функцию, ветвление и цикл.

второе задание

print("Общество в начале XXI века.")
x=int(input("Сколько Вам лет? "))
if   x not in range(0,121):
    print("Ошибка! Это программа для людей!\n"*5)
elif x<7:
    print("Вам в детский сад.")
elif x<19:
    print("Вам в школу.")
elif x<26:
    print("Вам в профессиональное учебное заведение.")
elif x<61:
    print("Вам на работу.")
else:
    print("Вам предоставляется выбор.")

первая задача

x=input("Введите число от 1 до 9 - ")
if x not in range(1,10): 
    print("Ошибка ввода")
elif x<4: 
    print((raw_input("Строка: ")+" ")*input("Число посторов: "))
elif x<7: 
    print(x**input("Введите степень: "))
else: 
    print([x for x in range(x+1,x+11)])

Моё решение:

Первое задание:

x = int(input('Введите число от 1 до 9 '))
if 1 <= x <= 3:
    s = str(input('Введите строку: '))
    n = int(input('Введите число повторов строки: '))
    i = 0
    while i < n:
        print(s)
        i = i + 1
elif 4 <= x <= 6:
    m = int(input('Введите степень, в которую следует возвести число: '))
    x = x**m
    print(x)
elif 7 <= x <= 9:
    j = 0
    while j < 10:
        x = x + 1
        print(x)
        j = j + 1
else:
    print('Ошибка ввода')

Второе задание:

print('«Общество в начале XXI века»')
age =int(input('Сколько вам лет? '))
if 0 <= age <= 6:
    print('Вам в детский сад')
elif 7 <= age <= 17:
    print('Вам в школу')
elif 18 <= age <= 24:
    print('Вам в профессиональное учеьное заведение')
elif 25 <= age <= 59:
    print('Вам на работу')
elif 60 <= age <= 120:
    print('Вам предоставляется выбор')
else:
         i = 0
         while i < 5:
             print('Ошибка! это программа для людей!')
             i = i + 1

Во втором задании некорректно заданы промежутки возраста, поэтому пришлось немного изменить их, чтобы программа выдавала правильные данные.

Решение перового задания (Lemah)

Вот мой вариант решения первой задачи... немного повозился ... вообщем с возведением в степень вышла запарка, я использовал библиотеку math.

__author__="Lemah"
__date__ ="$13.08.2011 9:19:57$"
 
import math
 
print "Здравствуйте"
def one_three():
    #print "1 - 3"
    s = str(raw_input("Введите строку: "))
    try:
        n = int(raw_input("Введите число повторов строки: "))
    except:
        print "Ошибка, введите пожалуйста число а не текст!"
    while n != 0:
        print (s)
        n-=1
    pass
 
def four_six(x):
    #print "4 - 6"
    try:
        m = int(raw_input("Введите степень: "))
    except:
        print "Ошибка, введите пожалуйста число а не текст!"
    print (math.pow(x, m))
    pass
 
def seven_nine(x):
    #print "7 - 9"
    i = 0
    while i != 10:
        x+=1
        print x
        i+=1
    pass
 
def func_number():
    try:
        x = int(raw_input("Пожалуйста введите число от 1 до 9: "))
    except:
        print "Ошибка, введите пожалуйста число а не текст!"
        return 0
    if x >= 1 and x <= 3:
        one_three()
    elif x >= 4 and x <= 6:
        four_six(x)
    elif x >= 7 and x <= 9:
        seven_nine(x)
    elif x < 1 or x > 9:
        print "Ошибка, ввести число можно только в диапазоне от 1 до 9!"
        return 0
 
 
if func_number() == 0:
    func_number()

) В этом скрипте есть

) В этом скрипте есть обработка исключений.

2 задание

всё получилось

def infa(a):
	if 0 <= a <= 7:
		print('Вам в детский сад')
	elif 7 <= a <= 18:
		print('Вам в школу')
	elif 18 <= a <= 25:
		print('Вам в профессиональное учебное заведение')
	elif 25 <= a <= 60:
		print('Вам на работу')
	elif 60 <= a <= 120:
		print('Вам представаляется выбор')
	elif 121 <= a <= -1:
		i = 0
		while i < 5:
			print ('Ошибка,программа для людей')
			i = i + 5<python>
спасибки

Напишите решение!

Напишите решение!

Ответ

Первое задание:

#!/usr/bin/python
# -*- coding: utf-8 -*-
def derror():
    i = 0
    while i<5:
        print 'Ошибка ввода'
        i=i+1
ivcount = raw_input('Введите число от 1 до 9: ')
try:
    ivcount = int(ivcount)
except ValueError:
    derror()
else:
    if (ivcount>=1 and ivcount<=3):
        s = raw_input('Введите, пожалуйста, строку: ')
        try:
            n = int(raw_input('Сколько будем повторять: '))
        except ValueError:
            derror()
        else:
            while n != 1:
                s = s+s
                n = n-1
            print s
    elif (ivcount>=4 and ivcount<=6):
        try:
            m = int(raw_input('В какую степень возводить: '))
        except ValueError:
            derror()
        else:
            while m != 1:
                ivcount = ivcount*ivcount
                m = m-1
            print ivcount
    elif (ivcount>=7 and ivcount<=9):
        i=0;
        while i<10:
            ivcount = ivcount +1
            i=i+1
        print ivcount
    else:
        derror()

Второе задание:
#! /usr/bin/python
# -*- coding: utf-8 -*-
def derror():
    i = 5
    while i != 0:
        print "Ошибка! Это программа для людей!"
        i = i-1
old=1
while old != 0:
    try:
        old = int(raw_input('Введите Ваш возраст: '))
    except:
        derror()
    else:
        if (old>=0 and old<=7):
            print "Вам в детский сад."
        elif (old>=7 and old<=18):
            print "Вам в школу."
        elif (old>=18 and old<=25):
            print "Вам в ПТУ."
        elif (old>=25 and old<=60):
            print "Иди работай."
        elif (old>=60 and old<=120):
            print "Подумай о душе"
        else:
            derror()
print "Конец"

Первое задание: x=

Первое задание:

x= input('Введите число от 1 до 9 включительно: ')
x= x[0]
print('Ваше число:',x)
if '1'<=x<='3':
    s= input('Введите произвольную строку: ')
    n= int(input('Сколько раз повторить строку? '))
    i= 0
    while i < n:
        print(s)
        i= i+1
elif '4'<=x<='6':
    m= int(input('Степень, в которую возвести число: '))
    x= int(x)
    print(x**m)
elif '7'<=x<='9':
    x= int(x)
    x2= x+10
    while x<x2:
        print(x)
        x= x+1
else:
    print('Ошибка ввода')

Второе задание:

def qualifier(a):
    if 0<=a<7:
        print("Детский сад")
    elif 7<=a<=18:
        print("Школа")
    elif 19<=a<25:
        print("Проф. образование")
    elif 25<=a<60:
        print("Работа")
    elif 60<=a<=120:
        print("Творчетво")
    elif a<0 or a>120:
        print("НЛО")
 
print('Общество в начале XXI века')
 
user_old= int(input('Сколько вам лет? '))
qualifier(user_old)

Понятно, что задания могут быть выполнены по-разному.

Есть некорректная формулировка во втором пункте первого задания. Во втором задании функция по сути не нужна, используется чисто ради идеи структурного программирования.

Код

Пишу код первого задания первый цикл так как показано в примере, а IDLE пишет ошибку в строке i=0, это как понимать?

Возможно до этого скобка не

Возможно до этого скобка не закрыта или что-нибудь с отступами не так.

Спасибо!у меня все почти

Спасибо!у меня все почти также,первое немного отличается,но все работает.Я только в 1 задании понять не мог как выводить числа в последней ветке elif.А сейчас понял.Спасибо!

А зачем использовать цикл для

А зачем использовать цикл для тиражирования текста? типа в задании так сказано?
1 задание:

#!/usr/bin/python
try:
        x = int(raw_input("Please input number:"))
        if x >= 1 and x <= 3:
                s = raw_input("Please input string:")
                n = int(raw_input("Please input repeat count:"))
                print str(s * n)
        elif x >= 4 and x <= 6:
                m = int(raw_input("Please input sqr level:"))
                print int(x ** m)
        elif x >= 7 and x <= 9:
                for i in range(1,11):
                        print int(i)
        else:
                print "Access denied"
except ValueError:
        print "Invalid number"

2 задание:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
print "Общество в начале XXI века"
try:
        age = int(input("Введите ваш возраст: "))
except:
        print "Неверное число"
        sys.exit()
if age in range(0, 7):
        print "Вам в детский сад"
elif age in range(7, 18):
        print "Вам в школу"
elif age in range(18, 25):
        print "Вам в профессиональное учебное заведение"
elif age in range(25, 60):
        print "Вам на работу"
elif age in range(60, 121):
        print "Вам предоставляется выбор"
elif age < 0 or age > 120:
        print "Ошибка! Это программа для людей! " * 5

я правда только начал изучение. чем чреваты такие подходы?