适用于绝对初学者的python编程第3章,挑战4

时间:2018-12-10 16:08:38

标签: python python-3.x

所以我对这个挑战有一些想法。我应该,而不是猜测该程序这次是从1-100中随机选择的数字,而我自己则是随机选择一个数字并使程序进行猜测。 所以我做到了,但它不完全是我想要的,这是到目前为止我得到的:

#I'm deciding to go with number 43.
import random

print("Hello computer, welcome to my guessing game!")
guess_list=[]
computer_guess=""
tries=1
while computer_guess!=43:
    computer_guess =(random.randint(1, 100))
        if computer_guess in guess_list:
        continue
    elif computer_guess==43:
    break
    else:
        print("Is the number you're thinking of ",computer_guess,"?")
        guess_list.append(computer_guess)
    tries+=1
print("I finally got it! Your number was 43 and it only took   me",tries,"tries!")

我有点想做到这一点,以便基于我的答复程序可以不同地理解(并重新选择一个数字)。 基本上我尝试添加以下内容:

    if response=="I'm thinking of a higher number, keep guessing!":
        computer_guess=(random.randint(int(computer_guess),100))
    if response=="I'm thinking of a lower number, keep guessing!":
        computer_guess=random.randint(1,int(computer_guess))

我的想法是根据先前的猜测进行回答,并对其进行纠正(“太高或太低”)。我知道我无法在computer_guess中使用computer_guess,但是我不确定该怎么做如果值得一提的是,我在业余时间正在做这件事,可惜我没有任何教授要问这个问题。 我应该保持简单还是进行调整容易吗? 谢谢,

有效

1 个答案:

答案 0 :(得分:0)

好吧,计算机必须猜测任何数字,最简单的解决方案是使计算机猜测1,如果不正确,则猜测2,依此类推,但这意味着遍历所有数字并向用户询问n次。一个答案(很烦人)。

第一:我会将您的硬编码43更改为您选择的数字。 然后:您可以让程序一一猜测(可行)

之后:探索更有效的解决方案(例如,转到(max + min / 2),并询问用户是否更高,等于等,如果更高,则将您的最小值重置为((max + min)/ 2)并且不要触摸max ,如果降低,则将您的max重置为max + min / 2并重复。 这样一来,效率也更高,因为您不必跟踪计算机的猜测,最终计算机就会达到目标。

希望有帮助!