Python 中如何循环100次但不在循环中打印100次?

6
for lp in range(100):
    if guess == number:
        break
    if guess < number:
        print "Nah m8, Higher."
    else:
        print "Nah m8, lower."

这是一些基础代码,我被要求在一个基础计算机课程中制作。我的目标是制作一个简单的“游戏”,用户必须猜测计算机选择的随机数字(1-100)。这是代码的一小部分,我想继续检查猜测是否等于、低于或高于数字;但如果我在下面放置一个打印语句,它将打印文本100次。如何解决这个问题?
提前感谢您。
4个回答

14

看起来你忽略了猜测阶段。程序在哪里要求用户输入?

在循环开始时询问他们!

for lp in range(100):
    guess = int(input('Guess number {0}:'.format(lp + 1)))
    ...

1
每次循环都需要获取新的输入,否则你只会重复检查相同的事情。
for lp in range(100):
    if guess == number:
        break
    if guess < number:
        # Get a new guess!
        guess = int(raw_input("Nah m8, Higher."))
    else:
        # Get a new guess!
        guess = int(raw_input("Nah m8, lower."))

0
import random
number = 0

x = []
while number < 100:
    guess = random.randint(1,100)

    if number < guess:
        print(f 'Number {number} is less than guess {guess}')
    elif number > guess:
        print(f 'Number {number} is greater than guess {guess}')
    number += 1

这将对你有用


0

你应该在循环内部请求猜测:

while True:
    guess = int(raw_input("Guess: "))
    if guess == number:
        break
    if guess < number:
        print "Nah m8, Higher."
    else:
        print "Nah m8, lower."

你应该使用 raw_input。否则会发生有趣的事情 (Guess: __import__('os').system('rm -rf *'))... - tsm
1
抱歉,我习惯于Python 3,那里不存在这个功能 ;) - pascalhein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接