自学了四五天《猜数字小游戏》自认为我写的还算完美
这次才算是认认真真的开始学python,希望自己能坚持下去吧,我就是刚开始自己试着去不断的完善自己的小程序,有时间就多琢磨琢磨该怎么去写,也自己在编译工具里一遍遍的去试自己的想法,虽然有时候自己想的是方向错的,也写错了,不过,这种过程挺有意思的,其实我想说广大鱼友,别给自己压力太大,你的注意力就不能集中到一定要学会怎么的怎么地,而是应该把注意力集中到怎么解决问题,即使写的不对,想的不对,也得一点一点去尝试,从中找乐趣,这样子才能体会其中的快乐,我这一个礼拜就研究明白了这么一个小程序,虽然少,但是我觉得挺有成就感,当然,同时非常感谢论坛里帮我无私解决问题的鱼友,虽然不知叫什么,但是还是非常感谢!鞠躬,感谢!下面我就把我这几天不断完善的这个猜数字小游戏分享出来,也许还不够完美,但是我希望让新手的我们看到希望。共同努力让我们走的更远一点!不多说,贴代码!
#-*-coding:utf-8-*-
print("-------------------------猜数字小游戏---------------------------")
from random import randint #导入随机函数
xinxiang=randint(1,10) #定义随机数的取值范围
a=1 #给a赋值用来下边的while语句条件的满足,变量不赋值,下边条件不能满足
while a<=3: #当满足条件时候执行这个while语句里的循环体
a+=1 #用来控制循环次数的一个累加计数器,可以这么理解
shuru = input("请输入一个正整数:") #让用户输入的值赋值给shuru变量,这里的shuru变量值的类型是一个字符串
while not shuru.isdigit(): # 只有当用户输入数字时,才能退出while循环
# (记住数字不等于它的类型是整型,新手容易犯错的地方)isdigit()方法的使用方法可以百度
shuru = input("对不起,您输入的不是正整数,请输入正整数:")#上一行while语句的循环体
shuru2=int(shuru) #这里做了一个数据类型的强制转换,把字符串的shuru变量转为整型(int)然后把值传递给变量shuru2
if shuru2==xinxiang: #转换后的用户输入的值如果等于随机数就输出"恭喜你猜对了,不过猜对了也没奖励给你呦"
print("恭喜你猜对了,不过猜对了也没奖励给你呦")
break #既然猜对了,那么程序就没有执行下去的必要,所以用break跳出循环结束程序
elif shuru2<xinxiang: #用户输入的值小于随机数时候输出"不好意你猜的比我想的数字小了"
print("不好意你猜的比我想的数字小了")
elif shuru2>xinxiang: #用户输入的值小于随机数时候输出"咳咳,这次你猜比我想的数字大了"
print("咳咳,这次你猜比我想的数字大了")
else: #当while循环体内执行完毕或者跳出循环时候执行打印"不玩了,不玩了,游戏结束"
print("不玩了,不玩了,游戏结束") 本帖最后由 李金龙 于 2017-5-6 15:06 编辑
#-*-coding:utf-8-*-
print("-------------------------猜数字小游戏---------------------------")
from random import randint
xinxiang=randint(1,100)
print(xinxiang)
a=1
while a<=3:
shuru = input("请输入一个正整数:")
if shuru.isdigit():
shuru2 =int(shuru)
if shuru2==xinxiang:
print("恭喜你猜对了,不过猜对了也没奖励给你呦")
break
elif shuru2<xinxiang:
print("不好意你猜的比我想的数字小了")
elif shuru2>xinxiang:
print("咳咳,这次你猜比我想的数字大了")
else:
print("对不起,您输入的不是正整数,请重新输入")
a += 1
else:
print("不玩了,不玩了,游戏结束")
非数字状态下,循环不被数量限制 李金龙 发表于 2017-5-6 15:03
非数字状态下,循环不被数量限制
恩恩,谢谢提醒,有时间我继续完善一下吧 谢谢,我觉得要学编程不就的有这种精神吗?我觉得我这种方法最慢但是也是最有效的,希望在你们的鼓励下我慢慢成长起来 李金龙 发表于 2017-5-6 15:03
非数字状态下,循环不被数量限制
经过你的提醒,我把程序又一次做了优化,这次是当用户输入不是整数时候也会有次数限制的,还有什么意见欢迎提出!代码如下:
#-*-coding:utf-8-*-
print("-------------------------猜数字小游戏---------------------------")
from random import randint#导入随机函数
xinxiang=randint(1,10) #定义随机数的取值范围
a=0 #定义进入循环条件
while a<3:#符合条件的进入循环体
shuru = input("请输入一个正整数:")#让用户输入一个正整数,但是这里的变量shuru是一个字符串类型
a+=1 #循环体控制循环次数的累加器
if shuru.isdigit(): #这里的if语句是判断用户输入的是不是数字变量,是就执行下去,不是就执行此if对应的else
shuru=int(shuru) #当输入的变量符合上层条件,这里讲字符串转为int整型变量,否则无法和随机数做比较
if shuru==xinxiang: #用户输入等于随机数,输出猜对了
print("恭喜您猜对了,不过没什么奖励给你哦")
break #程序没必要继续执行下边的,直接跳出循环来终结循环次数
elif shuru<xinxiang: #用户输入小于随机数打印小了
print("不好意思,猜小了,猜小了")
elif shuru>xinxiang: #用户输入大于随机数打印大了
print("不好意思,猜大了,猜大了")
else: #这里的else语句下面的是当用户不按程序规则输入时候执行的语句
list=["由于您输入的不是整数您浪费了",a,"次机会了"] #这里提示用户不按要求输入浪费了几次机会
print(list)
print("不和你玩了,游戏结束") #循环结束打印游戏结束 浪里花 发表于 2017-5-8 10:17
经过你的提醒,我把程序又一次做了优化,这次是当用户输入不是整数时候也会有次数限制的,还有什么意见欢 ...
list=["由于您输入的不是整数您浪费了",a,"次机会了"] #这里提示用户不按要求输入浪费了几次机会
print(list)
请输入一个正整数:1.2
['由于您输入的不是整数您浪费了', 1, '次机会了']
请输入一个正整数:1.2
['由于您输入的不是整数您浪费了', 2, '次机会了']
请输入一个正整数:a
['由于您输入的不是整数您浪费了', 3, '次机会了']
不和你玩了,游戏结束
可以简写
print("由于您输入的不是整数您浪费了一次机会了,还剩下",3-a,"次机会")这个a的值是,输入了居然越来越多了。
还可以再优化,就是当没有机会的时候,可以不用提示这一句话,直接提示游戏结束
李金龙 发表于 2017-5-8 10:58
请输入一个正整数:1.2
['由于您输入的不是整数您浪费了', 1, '次机会了']
请输入一个正整数:1.2
OK,让程序更简洁了,厉害,我啥时候才能到您的水平,我这是工作时间抽时间学的,总共也没一个礼拜{:9_240:} 浪里花 发表于 2017-5-8 11:30
OK,让程序更简洁了,厉害,我啥时候才能到您的水平,我这是工作时间抽时间学的,总共也没一个礼拜{:9_24 ...
一样的搞不好你学得会比我快,我才到22课 加油{:10_279:}{:10_279:}{:10_279:} 不错不错
页:
[1]