Python - 基本编码

时间:2017-07-17 04:27:37

标签: python

我是Python新手编码的新手。我正在尝试制作我的代码,以便在我进入年龄时将打印一系列文本。但是,我的代码只有在我逐行跟踪时才有效。例如,当我输入2000岁以上的时候,什么都不会发生。我需要先输入一个小于12的整数,然后输入一个大于2000的整数。

print('Please input name')
if input() == 'Alice':
    print('Hi, Alice.Please input age')

if int(input()) < 12:
    print('You are not Alice, kiddo.')
elif int(input()) > 2000:
    print('Unlike you, Alice is not an undead, immortal vampire.')
elif int(input()) == 100:
    print('You are not Alice, grannie.')
elif 12 < int(input()) < 99:
    print('You are Alice!.')

7 个答案:

答案 0 :(得分:3)

在这里,我为您的理解目的编写代码。采用新变量,这样就不需要多次重复input()方法了。此外,年龄验证代码保持在第一个条件内,并在第一个条件为真时执行。

print('Please input name')
var = input()
if var == 'Alice':
    print('Hi, Alice.Please input age')
    var = input()
    try:
       if int(var) < 12:
           print('You are not Alice, kiddo.')
       elif int(var) > 2000:
           print('Unlike you, Alice is not an undead, immortal vampire.')
       elif int(var) == 100:
           print('You are not Alice, grannie.')
       elif 12 < int(var) < 99:
           print('You are Alice!.')
    except Exception as ex:
       print('Invalid Data: Error: ' + ex)
else:
    print ("Invalid Name")

答案 1 :(得分:3)

var = input('Please input name ')
if var == 'Alice':
    var = int(input('Hi, Alice.Please input age '))
    if var < 12:
        print('You are not Alice, kiddo.')
    elif var > 2000:
        print('Unlike you, Alice is not an undead, immortal vampire.')
    elif var == 100:
        print('You are not Alice, grannie.')
    elif 12 < var < 99:
        print('You are Alice!.')
else:
    print ("Invalid Name")

此代码有效,因为它要求一次并尝试查看某些条件是否为真,而不是每次都询问。

答案 2 :(得分:1)

每次你去if的另一个分支机构时,你都要求用户输入另一个年龄!而是执行以下操作:

age = int(input())
if age < 12:
    print('You are not Alice, kiddo.')
elif age > 2000:
    print('Unlike you, Alice is not an undead, immortal vampire.')
elif age == 100:
    print('You are not Alice, grannie.')
elif 12 < age < 99:
    print('You are Alice!.')

答案 3 :(得分:1)

print('Please input name')
if input() == 'Alice':
    print('Hi, Alice.Please input age')

age = int(input()) # take input and assign it on a variable

if age < 12:
    print('You are not Alice, kiddo.')
elif age > 2000:
    print('Unlike you, Alice is not an undead, immortal vampire.')
elif age == 100:
    print('You are not Alice, grannie.')
elif 12 < age < 99:
    print('You are Alice!.')

答案 4 :(得分:1)

每次跟随input时都会调用

()。因此,input() if中的多个elif不是必需的。

将[{1}}的结果存储为input(),然后在age = int(input())age部分中使用if

答案 5 :(得分:1)

input()函数返回一个字符串。引用the docs(强调我的):

  

然后函数从输入中读取一行,将其转换为字符串(剥离尾随换行符),然后返回

因此,当您致电if时,在每个input()中,您必须输入一个新字符串。因此,您必须先输入一个低于12的整数。

要解决此问题,您需要将原始输入存储在变量中。现在,正如文档所说,input()返回一个字符串。因此,您可以通过执行以下操作(在每种情况下使用int())转换整数:

if int(age) < 12:

并将变量存储为字符串。

但是,除非你没有任何特定的理由将年龄保持为字符串,否则我建议你在首先将年龄存储在变量中时转换字符串:

age = int (input())

在这种情况下,age将有一个int。

答案 6 :(得分:0)

希望这是您正在寻找的:

while True:
name = input("Please ENTER your name: ")
if name == "Alice":
   print("Hi Alice!")
   break
print("Sorry, your name isn't correct. Please re-enter.")

age = False
while age != True:
      age = int(input("Please ENTER your age: ")
      age = True
      if age < 12:
           print("You're not Alice, kiddo.")
           age = False
      elif age > 2000:
           print("Unlike you, Alice is not an undead, immortal vampire.")
           age = False
      elif age == 100:
           print("You're not Alice, Granny!")
           age = False
      else:
           print("You are Alice!")
           age = True