首页 > 解决方案 > 我找不到任何问题,但它不工作

问题描述

import random
x = random.randint(1,100)
y = int(input('write your number: '))
while y > x:
    print('my number is smaller')
    y = int(input('write your number: '))
while y < x:
    print('my number is bigger')
    y = int(input('write your number: '))
while y == x:
    print('your right')
    break

我在这段代码中的问题是,当我输入 4 或 5 数字时,程序将关闭而没有任何响应

标签: python

解决方案


我认为@TimRoberts 和@Barmar 给出了正确的解释。我没有什么要补充的,只是一个建议:在编码之前,你必须考虑你的算法。最后,这不是 Python 编码的问题。

import random
x = random.randint(1,100)

while True:
    y = int(input('write your number: '))
    if y > x:
        print('my number is smaller')
    elif y < x:
        print('my number is bigger')
    else:
        print('your right')
        break

为了更加 Pythonic,您必须测试用户是否输入了数字。像这样使用 try/except 块:

import random
x = random.randint(1,100)

while True:
    try:
        y = int(input('write your number: '))
    except ValueError:
        print('your input should be a number')
        continue
    if y > x:
        print('my number is smaller')
    elif y < x:
        print('my number is bigger')
    else:
        print('your right')
        break

推荐阅读