Ввод данных с клавиатуры. Урок 8

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

Компьютерные программы обрабатывают данные, производя над ними операции, которые задал программист, и которые были обусловлены поставленными задачами. Данные в программу можно "заложить" в процессе ее разработки. Однако такая программа всегда будет обрабатывать одни и те же данные и возвращать один и тот же результат. Чаще требуется совершенно другое — программа должна обрабатывать разные (относительно, в определенном диапазоне) данные, которые поступают в нее из внешних источников. В качестве последних могут выступать файлы или клавиатура. Когда информация вводится с клавиатуры, а результаты выводятся на экран монитора, то можно говорить об интерактивном режиме работы программы. Она обменивается информацией с внешней для нее средой: может выводить и получать данные в процессе выполнения, и не является замкнутой сама на себе. С выводом данных мы уже отчасти знакомы: выводом на экран (и не только) в языке программирования Python занимается функция print().

Ввод данных с клавиатуры в программу (начиная с версии Python 3.0) осуществляется с помощью функции input(). Когда данная функция выполняется, то поток выполнения программы останавливается в ожидании данных, которые пользователь должен ввести с помощью клавиатуры. После ввода данных и нажатия Enter, функция input() завершает свое выполнение и возвращает результат, который представляет собой строку символов, введенных пользователем.

>>> input()
1234
'1234'
>>> input()
Hello World!
'Hello World!'
>>> 

Когда выполняющаяся программа предлагает пользователю что-либо ввести, то пользователь может не понять, что от него хотят. Надо как-то сообщить, ввод каких данных ожидает программа. С этой целью функция input() может принимать необязательный аргумент-приглашение строкового типа; при выполнении функции сообщение будет появляться на экране и информировать человека о запрашиваемых данных.

>>> input("Введите номер карты: ")
Введите номер карты: 98765
'98765'
>>> input('Input your name: ')
Input your name: Sasha
'Sasha'
>>> 

Из примеров видно, что данные возвращаются в виде строки, даже если было введено число. В более ранних версиях Python были две встроенные функции, позволяющие получать данные с клавиатуры: raw_input(), возвращающая в программу строку и input(), возвращающая число. Начиная с версии Python 3.0, если требуется получить число, то результат выполнения функции input() изменяют с помощью функций int() или float().

>>> input('Введите число: ')
Введите число: 10
'10'
>>> int(input('Введите число: '))
Введите число: 10
10
>>> float(input('Введите число: '))
Введите число: 10
10.0
>>> 

Результат, возвращаемый функцией input(), обычно присваивают переменной для дальнейшего использования в программе.

>>> userName = input('What is your name? ')
What is your name? Masha
>>> exp = input('3*34 = ')
3*34 = 102
>>> exp = int(exp) + 21
>>> userName
'Masha'
>>> exp
123
>>> 

Практическая работа

1. Создайте скрипт (файл data.py), который бы запрашивал у пользователя
- его имя: "What is your name?"
- возраст: "How old are you?"
- место жительства: "Where are you live?"
, а затем выводил три строки
- "This is имя"
- "It is возраст"
- "He live in место_жительства"
, где вместо имя, возраст, место_жительства должны быть соответствующие данные, введенные пользователем.

2. Напишите программу (файл example.py), которая предлагала бы пользователю решить пример 4*100-54. Если пользователь напишет правильный ответ, то получит поздравление от программы, иначе – программа сообщит ему об ошибке. (При решении задачи используйте конструкцию if-else.)

3. Перепишите предыдущую программу так, чтобы пользователю предлагалось решать пример до тех пор, пока он не напишет правильный ответ. (При решении задачи используйте цикл while.)

Домашнее задание

Задание 1.

userName = raw_input('What is your name? ')
userAge = raw_input('How old are you? ')
userAddress = raw_input('Where are you live? ')
 
print('This is ' + userName)
print('It is ' + userAge)
print('He lives in ' + userAddress)

Задание 2.

userName = raw_input('What is your name? ')
task = int(raw_input('Solve this problem 4*100 - 54 = '))
if (task != 346):
    print ('Solution is incorrect! Try again, ' + userName)
else:
    print('Congratulations,' + userName + '! The answer is correct!')

Задание 3.

userName = raw_input('What is your name? ')
task = int(raw_input('Solve this problem 4*100 - 54 = '))
while task != 346:
    print('Solution is incorrect! Try again, ' + userName)
    task = int(raw_input('Solve this problem 4*100 - 54 = '))

Если это урок про ввод данных

Если это урок про ввод данных с клавиатуры, каким образом мы можем создать скрипт? Этого еще не было.

Скрипт, в данном случае, -

Скрипт, в данном случае, - это код программы, сохраненный в файл, а не выполняемый сразу по мере написания интерпретатором.

Решение на питоне ниже 3.0 версии

a = raw_input ('ваше имя : ') 
b = raw_input('ваш возвраст : ')
c = raw_input ('место жительства : ')
 
print "имя : "  + (a)
print "возвраст : " + (b)
print "место жителства : " + (c)

Не получается

Додумался до:

exp1 = input("Решите пример: 4*100-54= ")
if exp1 == 4*100-54:
    print ("Примите наши поздравления!")
else:
    print ("Ниправильна")

Python 3.2

exp1 изменяется на нужное число, но все равно выдает "Ниправильна"
пробовал еще варианты с 1 и 2мя переменными - пока == ответ Ниправильна на любые числа
даже выставлял if exp1 == 346, но... поздравления приходят только, если поставить !=... и так же на любое число

подскажите пожалуйста в чем не прав и как было бы правильно?

Если у вас Python версии 3,

Если у вас Python версии 3, то функция input возвращает строку, и получается, что вы сравниваете строку и число. Они всегда не равны.

Попробуйте так:

exp1 = input("Решите пример: 4*100-54= ")
exp1 = int(exp1) # Преобразование в целое число
...
...

цикл

Не могу понять как правильно выполнить задание № 3 . Вот мой код :

a = int(input("4*100-54 = "))
if a == 346:
    print ("1")
else:
    print ("0")
while a != 346:
    a = int(input("4*100-54 = "))
    if a == 346:
        print ("1")
    else:
        print ("0")

Все работает. Но я думаю, что его можно уменьшить раза в 2.

a = int(input("4*100-54 =

a = int(input("4*100-54 = "))
 
while a != 346:
    a = int(input("4*100-54 = "))
    print ("0")
 
if a == 346: # эта строчка тоже не обязательна
    print ("1") # если уберете предыдущую строчку, у этой уберите отступ

2 задание

не совсем понимаю как сделать так чтобы сначала спрашивала а патом говорила правильно или нет