简单的Python随机数猜测



我刚刚写了一个快速脚本,猜测一个随机数。尽管脚本的最后一行"恭喜您赢了等等"没有运行。同样在某些口译员中,这给出了一个错误"无法运行脚本"。

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)

我对您的脚本进行了一些修订。请注意,其功能由执行流进行调节,并且不需要特殊的控制语句(例如continuebreak)或显式干预才能使其在逻辑上保持一致:

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...")

我更改了:

  1. isCorrect变量。我删除了它,因为它没有使用;
  2. guess变量初始化的方式。是在while语句之前的 None;
  3. 段循环内的条件语句;
  4. 从段循环内部的用户读取输入的顺序。

我建议对脚本为什么有效的直观感。

我尝试运行它并收到以下输出:

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)

最新更新