我刚刚写了一个快速脚本,猜测一个随机数。尽管脚本的最后一行"恭喜您赢了等等"没有运行。同样在某些口译员中,这给出了一个错误"无法运行脚本"。
import random
attempts = 0
secret_number = random.randint(1,100)
isCorrect = False
guess = int(input("Take a guess: "))
while secret_number != guess:
if guess < secret_number:
print("Higher...")
guess = int(input("Take a guess: "))
attempts+= 1
elif guess > secret_number:
print("Lower...")
guess = int(input("Take a guess: "))
attempts+= 1
else:
print("nYou guessed it! The number was " ,secret_number)
我对您的脚本进行了一些修订。请注意,其功能由执行流进行调节,并且不需要特殊的控制语句(例如continue
,break
)或显式干预才能使其在逻辑上保持一致:
import random
secret_number = random.randint(1, 100)
guess = None
attempts = 0
while secret_number != guess:
guess = int(input("Take a guess: "))
attempts += 1
if secret_number == guess:
print("nYou guessed it! The number was ", secret_number)
elif guess < secret_number:
print("Higher...")
elif guess > secret_number:
print("Lower...")
我更改了:
-
isCorrect
变量。我删除了它,因为它没有使用; -
guess
变量初始化的方式。是在while语句之前的None
; - 段循环内的条件语句;
- 从段循环内部的用户读取输入的顺序。
我建议对脚本为什么有效的直观感。
我尝试运行它并收到以下输出:
None@vacuum:~$ python3.6 ./test.py
Take a guess: 70
Higher...
Take a guess: 80
Higher...
Take a guess: 90
Higher...
Take a guess: 95
Lower...
Take a guess: 94
Lower...
Take a guess: 93
Lower...
Take a guess: 92
Lower...
Take a guess: 91
You guessed it! The number was 91
您应该将线路从时循环中打印出来,因为当secret_number ==猜猜时,循环会断开。
while ...:
if:
...
elif:
...
print "You guessed it! The number was {0}".format(secret_number)