n = input("Number? ") if n < 0: print "The absolute value of",n,"is",-n else: print "The absolute value of",n,"is",n
А вот результат запуска программы дважды:
Number? -34 The absolute value of -34 is 34 Number? 1 The absolute value of 1 is 1
Что же делает компьютер, когда он видит эту программу? Сначала он просит пользователя ввести число, выполняя команду n = input("Number? "). Затем он переходит на команду if n < 0: Если n меньше нуля, Python выполняет команду print "The absolute value of",n,"is",-n. В противном случае он выполняет print "The absolute value of",n,"is",n.
Выражаясь более формально, Python проверяет, истинно или ложно выражение n < 0. За командой if следует блок команд, которые выполняются, если выражение истинно. Возможно, что после команды if идет команда else. Она выполняется, если выражение ложно.
Существуют несколько проверок, которые могут использовать выражения. Все они приводятся в следующей таблице:
оператор | значение |
< |
меньше |
<= |
меньше или равно |
> |
больше |
>= |
больше или равно |
== |
равно |
!= |
не равно |
<> |
другой вариант для не равно |
Другая особенность команды if – elif альтернатива. Это - сокращение от английского «иначе если» и означает, что если первоначальное if ложно, и если elif часть истинна, выполняем эту часть. Пример:
a = 0 while a < 10: a = a + 1 if a > 5: print a," > ",5 elif a <= 7: print a," <= ",7 else: print "Neither test was true"
и результат:
1 <= 7 2 <= 7 3 <= 7 4 <= 7 5 <= 7 6 > 5 7 > 5 8 > 5 9 > 5 10 > 5
Обратите внимание, что выражение elif a <= 7 проверяется только, если выражение в if ложно. elif позволяет провести несколько проверок внутри одной команды if.
#Игра «Угадай число» # написана Джошем Коглиати, улучшена Квик #Здесь должно быть псевдослучайное число, например # последние цифры текущего времени, но с этим подождем # до главы «Модули». (Дополнительное задание - # использовать случайное число после главы «Модули») number = 78 guess = 0 while guess != number : guess = input ("Guess a number: ") if guess > number : print "Too high" elif guess < number : print "Too low" print "Just right"
Пример работы программы:
Guess a number:100 Too high Guess a number:50 Too low Guess a number:75 Too low Guess a number:87 Too high Guess a number:81 Too high Guess a number:78 Just right
even.py
#Запрашивает число. #Выдает ответ, четное оно или нечетное number = input("Tell me a number: ") if number % 2 == 0: print number,"is even." elif number % 2 == 1: print number,"is odd." else: print number,"is very strange."
Пример работы программы:
Tell me a number: 3 3 is odd. Tell me a number: 2 2 is even. Tell me a number: 3.14159 3.14159 is very strange.
average1.py
#Запрашивает ввод чисел пока пользователь не введет 0. #Выводит среднее арифметическое. count = 0 sum = 0.0 number = 1 #задайте что-либо что не завершит # цикл while сразу же print "Enter 0 to exit the loop" while number != 0: number = input("Enter a number:") count = count + 1 sum = sum + number count = count - 1 #вычтем единицу для номера #последнего числа print "The average was:",sum/count
Пример работы программы:
Enter 0 to exit the loop Enter a number:3 Enter a number:5 Enter a number:0 The average was: 4.0 Enter 0 to exit the loop Enter a number:1 Enter a number:4 Enter a number:3 Enter a number:0 The average was: 2.66666666667
average2.py
#Запрашивает ввод чисел пока пользователь не введет 0. #Выводит среднее арифметическое. sum = 0.0 print "This program will take several numbers than average them" count = input("How many numbers would you like to sum:") current_count = 0 while current_count < count: current_count = current_count + 1 print "Number ",current_count number = input("Enter a number:") sum = sum + number print "The average was:",sum/count
Пример работы программы:
This program will take several numbers than average them How many numbers would you like to sum:2 Number 1 Enter a number:3 Number 2 Enter a number:5 The average was: 4.0 This program will take several numbers than average them How many numbers would you like to sum:3 Number 1 Enter a number:1 Number 2 Enter a number:4 Number 3 Enter a number:3 The average was: 2.66666666667
Улучшите программу ввода пароля, учитывая, сколько раз пользователь ввел неправильный пароль. Если больше, чем 3 раза, выведите "That must of been complicated."
Напишите программу, которая запрашивает два числа. Если сумма чисел больше 100, выведите "That is a big number".
Напишите программу, которая спрашивает у пользователя его имя. Если будет введено ваше имя, выведите "That is a nice name", если будет введено "John Cleese" или "Michael Palin", выведите, что вы думаете о них, в остальных случаях выведите "You have a nice name".