python3.1中整数的问题

2024-05-18 16:23:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题在第13行(else)。我得到错误“无效语法”

Answer = 23
Guess = ()
Gender = input("Are you a boy, a girl or an alien? ")

if Gender == 'boy' or 'Boy':
     print("Nice!", Gender)
if Gender == 'girl' or 'Girl':
     print("Prepare do die!", Gender)
if Gender == 'alien' or 'Alien':
     print("AWESOME my", Gender, "Friend!")   
 while 'Guess' != Answer:
if Guess < Answer:
     print("Too low! try again")
    else:
        print("too high")

Tags: oransweryouinputif错误语法gender
3条回答

该代码在使用or以及字符串和变量之间的差异方面存在严重问题。这是你想要的吗?公司名称:

Answer = 23
Guess = None
Gender = raw_input("Are you a boy, a girl or an alien? ")

if Gender in ('boy', 'Boy'):
     print("Nice!", Gender)
elif Gender in ('girl', 'Girl'):
     print("Prepare do die! %s" % Gender)
elif Gender in ('alien', 'Alien'):
     print("AWESOME my %s Friend!" % Gender)
while Guess != Answer:
    Guess = raw_input('Guess the number: ')
    try:
       Guess = int(Guess)
    except ValueError:
        print('Not an integer')
        continue
    if Guess == Answer:
        print('Alright!')
        break
    elif Guess < Answer:
        print("Too low! try again")
    else:
        print("too high")

下面是一个(几乎)正确的程序,我的意见是:

# The recommended style for Python is to use CamelCase for classes only:
answer = 23 
guess = None # An empty tuple () works to, but this makes more sense.
gender = input("Are you a boy, a girl or an alien? ")

# Using gender.lower() means both 'Boy', 'boy', 'BOY' or 'boY' matches:
if gender.lower() == 'boy':
    print("Nice!", gender)
# Although you can do it like this too:
if gender in ('girl' or 'Girl'):
    print("Prepare do die!", gender)
# But this is *always* true, so it's wrong. I left this bug in intentionally:
if gender == 'alien' or 'Alien': 
    print("AWESOME my", gender, "friend!")

# 'guess' == answer will always be false. Remove the quotes:
while guess != answer:
    # And you forgot to ask for the guess...
    guess = int(input("Guess my age? "))

    # Indentation matters in Python:
    if guess == answer:
        print("Yeah, correct!")
    elif guess < answer:
        print("Too low! try again")
    else:
        print("too high")

结果如下:

^{pr2}$

如您所见,验证您的输入是一个好主意。)但这是下一步。在

你的问题是缩进。if必须与{}对齐。在必须去的while之前似乎还有一个前导空格。在

if Guess < Answer:
     print("Too low! try again")
    else:
        print("too high")

应该是

^{pr2}$

Gender == 'boy' or 'Boy'没有达到预期效果。由于Boy的计算结果为true,因此它将仅等效于Gender == 'boy'。您可能想要Gender == 'boy' or Gender == 'Boy',如果您可以接受任何案例,可以将其简化为Gender.lower() == 'boy'。在

你可能还想在答案之前和while循环中阅读。在

您还应该在接受的Python style guide后面,并使用由下划线分隔的小写单词作为变量名,例如gender而不是{}。使用Gender作为类名。在

相关问题 更多 >

    热门问题