写一个猜数字的游戏,
先用中文把过程写一下,
定义一个6次循环,变量为C
1、先随机一个数字1-50之间,赋予变量N
2、然后屏幕打印“第C次,请输入1-50之间的数字”
3、让你输入一个数字,要求在1-50之间,赋予变量R
4、判断这是不是一个1-50之间的数字,
5、不是返回第2步,
6、如果是1-50之间的数字
7、比较R和N的大小,如果一样大,打印“你猜中了”程序结束;如果R比N小,打印“你输入的数字小了,请输入R-50之间的数字”;如果R比N大,打印“你输入的数字大了,请输入1-R之间的数字”;下一步。可以把这一步定义为一个函数。返回循环开始。
也不知道自己写的过程对不对,一边实践一边修改吧。
#def pandun(): #原本想定义一个判断函数用来直接调用,结果没有用上。
# if N==R: # input()输入的是字符串,不是数字,所以不能直接和一个数字进行判断。
import random #调用random模块,要用到randint()函数,
N=random.randint(1,50) #调用random模块中的randint()函数,把1到50里的一个随机数赋值给变量N
#N=2 #用来做测试用的,可以明确知道N的数值,简化检测。
print('你有6次机会,第一次,请输入1-50之间的数字')
try: #判断如果下面的程序出错(输入的不是数字),就直接结束程序。
for c in range(1,7): #循环6次,把循环次数赋值给c。
R=input() #输入一个数字赋值给R,看了书里的编程后,这一句可以改成R=int(input()),然后后面的int(R)可以直接写成R
if int(R)==N: #把R变成整数型,和N进行比较
print('你猜中了!')
break #如果猜中了,通过这句话,终止循环
elif int(R)<N:
print('第'+str(c+1)+'你输入的数字小了,请输入'+str(R)+'-50之间的数字')
elif int(R)>N:
print('第'+str(c+1)+'你输入的数字大了,请输入1-'+str(R)+'之间的数字')
print('你失败了!') #循环结束还没有猜中,打印这句话后结束循环。
except ValueError: #出现非数字符号,打印下面的句子,
print('你不按要求输入,请重新开始') #必须缩进一格,不然就不是except下面的语句。
书里编的程序
# This is a guess the number game.
import random
secretNumber = random.randint(1,20)
print('I am thinking of a number between 1 and 20.' )
# Ask the player to guess 6 times.
for guessesTaken in range(1, 7):
print('Take a guess.')
guess = int(input()) #这一句比我的合理,直接将变量变成一个整数然后赋值给变量guess
if guess < secretNumber:
print('Your guess is too low.')
elif guess > secretNumber :
print('Your guess is too high.')
else:
break # This condition is the correct guess!
if guess == secretNumber:
print('Good job! You guessed my number in ' + str(guessesTaken) + ' guesses!')
else:
print('Nope. The number I was thinking of was ' + str( secretNumber) )
书本的这个例子,缺少输入其他字符时的情况,所以运行的时候会出错。
为什么要把学习的过程写下来,因为只有在写下来,进行输出的同时,我才会更加认真的对待学习,把每一个过程都去思考一下,去验证一下。学了不等于会,一定要用出来,才能证明你会了。只是按着书上的代码输入一次,学习的效果十分的有限。