python猜猜我是几_Python,猜猜我的数字

设计

我认为您应该尽可能地将循环响应和获取已验证响应这两个问题分开,您可以通过编写一个函数来实现这一点,该函数处理验证用户输入的问题。在

这样的函数需要知道如果用户的输入无效,如何提示用户以及如何告诉用户,因此我们必须为函数提供两个参数,但我们也为参数提供合理的默认值。。。在

为了检查输入的正确性,我们使用一个try: ... except: ...子句,如果try的主体出现错误,except将查看错误,如果它是一个特定的错误(对于我们,ValueError),则执行except的主体。在

except的主体以对我们定义的函数的调用结尾,因为这是另一种循环方式,如果你考虑到发生了什么。。。在这种情况下,这是一种更简单的循环方式。在

实施

也就是说,在理解我们的职能需要的基础上,我们写下:def get_integer(prompt='Enter an integer: ',

err_prompt='Not an integer, please try again.'):

answer = input(prompt)

try:

number = int(answer)

return number

except ValueError:

print(err_prompt)

return get_integer(prompt, err_prompt)

测试

现在再做一点测试

^{pr2}$

把它们放在一起

我使用了你的实现,因为它确实足够好,但是我稍微改变了字符串的大小写,不再是try ... except,因为它隐藏在get_integer()中,并且引入了一个在正常终止时执行的^{} clause to the ^{} loop,这样用户就可以知道程序停止的原因了。在import random

def get_integer(prompt='Enter an integer: ',

err_prompt='Not an integer, please try again.'):

answer = input(prompt)

try:

return int(answer)

except ValueError:

print(err_prompt)

return get_integer(prompt, err_prompt)

print("Hello, what is your name?")

GG = input()

print("Well, " + GG + ", I am thinking of a number between 0 and 20...")

number = random.randint(0,20)

for taken in range(1,7):

print("Take a guess.")

guess = get_integer()

if guess < number:

print("Your guess is too low.")

elif guess > number:

print("Your guess is too high.")

else:

print("Your guess is exact!")

break

else:

print("Too many attempts. You lose!")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值