马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
对小甲鱼老师的猜数字游戏代码,又研究了下,有几点疑问,请大神们帮忙答疑:import random
import time
times = 3
secret = random.randint(1,10)
print('------我爱鱼C工作室------')
print('猜猜我现在心里想的是什么数字吧:', end = '') # 为什么这里用的print语句,直接用temp = input('猜猜我现在心里想的是什么数字吧:', end = '')不是可以节省语句?
guess = 0 # 为什么guess这个变量,在使用前要先赋值? 直接用guess = int(temp)不可以吗? 是不是说,因为temp要参与循环,必须用temp = input
while (guess !=secret) and (times > 0):
temp= input()
guess = int(temp) #这里貌似取消guess这个变量,先用给temp赋值0,再用temp = int(input()), 后面完全用temp取代guess,也是可以的。这样会有什么区别吗?另外,guess先赋值0,是在1~10的区间之外,那我赋值11,是否也可以呢?
if guess == secret: #while语句的前提条件是 guess != secret,而这里又用到guess == secret,感觉前后矛盾,可是程序又能正常运行,怎么回事?
print('你真是我肚里的蛔虫啊!')
else:
if guess > secret:
print('哥,大了大了')
else:
print('嘿,小了小了')
if times > 0:
print('猜错了,再来一次吧:', end = '')
else:
print('机会用光咯T_T')
times -=1
print('游戏结束,不玩啦^_^')
print(time.process_time()) #貌似运行几次程序的时间,是在变化的,每次都不一样~~为什么?如果应用到大型程序中,不是每次都一样会有时间差别?小程序是0.0几秒的差别,大程序会有多大的差别呢?分钟?
print('猜猜我现在心里想的是什么数字吧:', end = '') # 为什么这里用的print语句,直接用temp = input('猜猜我现在心里想的是什么数字吧:', end = '')不是可以节省语句?
因为这句话只想出现一次,后面都是大了小了等,所以就跟input不合在一起了。另input没有 end参数。
guess = 0 # 为什么guess这个变量,在使用前要先赋值? 直接用guess = int(temp)不可以吗? 是不是说,因为temp要参与循环,必须用temp = input
如果在循环体前先用input和int给guess赋值当然可以,这要稍调整程序结构。
guess = int(temp) #这里貌似取消guess这个变量,先用给temp赋值0,再用temp = int(input()), 后面完全用temp取代guess,也是可以的。这样会有什么区别吗?另外,guess先赋值0,是在1~10的区间之外,那我赋值11,是否也可以呢?
guess的整数,temp是字符串,为了比较数字的大小所以要转换成整数,guess预先赋值只要不在答案范围都行
if guess == secret: #while语句的前提条件是 guess != secret,而这里又用到guess == secret,感觉前后矛盾,可是程序又能正常运行,怎么回事?
这就要看此句是在while之前还是之后了,表面看实在之后,但第一次循环guess是不等于的进入循环,然后是input等到guess,这是的次序是先if判断再返回到while判断,所以并不矛盾。
print(time.process_time()) #貌似运行几次程序的时间,是在变化的,每次都不一样~~为什么?如果应用到大型程序中,不是每次都一样会有时间差别?小程序是0.0几秒的差别,大程序会有多大的差别呢?分钟?
由于python的管理机制,特别是内存中变量回收机制,使得程序的运行时间并不一样,对于一个大程序可能在中间“暂停”一段时间,来处理变量回收等操作,因此python不适合实时控制等对时间要求严格的场所。大程序运行时间的差别会有一定的放大,但不会等比例的放大。
|