鱼C论坛

 找回密码
 立即注册
查看: 2884|回复: 9

[原创] 自学了四五天《猜数字小游戏》自认为我写的还算完美

[复制链接]
发表于 2017-5-5 22:34:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这次才算是认认真真的开始学python,希望自己能坚持下去吧,我就是刚开始自己试着去不断的完善自己的小程序,有时间就多琢磨琢磨该怎么去写,也自己在编译工具里一遍遍的去试自己的想法,虽然有时候自己想的是方向错的,也写错了,不过,这种过程挺有意思的,其实我想说广大鱼友,别给自己压力太大,你的注意力就不能集中到一定要学会怎么的怎么地,而是应该把注意力集中到怎么解决问题,即使写的不对,想的不对,也得一点一点去尝试,从中找乐趣,这样子才能体会其中的快乐,我这一个礼拜就研究明白了这么一个小程序,虽然少,但是我觉得挺有成就感,当然,同时非常感谢论坛里帮我无私解决问题的鱼友,虽然不知叫什么,但是还是非常感谢!鞠躬,感谢!
下面我就把我这几天不断完善的这个猜数字小游戏分享出来,也许还不够完美,但是我希望让新手的我们看到希望。共同努力让我们走的更远一点!不多说,贴代码!
  1. #-*-coding:utf-8-*-
  2. print("-------------------------猜数字小游戏---------------------------")
  3. from random import randint              #导入随机函数
  4. xinxiang=randint(1,10)              #定义随机数的取值范围
  5. a=1                                 #给a赋值用来下边的while语句条件的满足,变量不赋值,下边条件不能满足
  6. while a<=3:                         #当满足条件时候执行这个while语句里的循环体
  7.     a+=1                            #用来控制循环次数的一个累加计数器,可以这么理解
  8.     shuru = input("请输入一个正整数:")       #让用户输入的值赋值给shuru变量,这里的shuru变量值的类型是一个字符串
  9.     while not shuru.isdigit():        # 只有当用户输入数字时,才能退出while循环
  10.                                     # (记住数字不等于它的类型是整型,新手容易犯错的地方)isdigit()方法的使用方法可以百度
  11.         shuru = input("对不起,您输入的不是正整数,请输入正整数:")  #上一行while语句的循环体
  12.     shuru2=int(shuru)               #这里做了一个数据类型的强制转换,把字符串的shuru变量转为整型(int)然后把值传递给变量shuru2
  13.     if shuru2==xinxiang:            #转换后的用户输入的值如果等于随机数就输出"恭喜你猜对了,不过猜对了也没奖励给你呦"
  14.         print("恭喜你猜对了,不过猜对了也没奖励给你呦")
  15.         break                       #既然猜对了,那么程序就没有执行下去的必要,所以用break跳出循环结束程序
  16.     elif shuru2<xinxiang:           #用户输入的值小于随机数时候输出"不好意你猜的比我想的数字小了"
  17.         print("不好意你猜的比我想的数字小了")
  18.     elif shuru2>xinxiang:            #用户输入的值小于随机数时候输出"咳咳,这次你猜比我想的数字大了"
  19.         print("咳咳,这次你猜比我想的数字大了")
  20. else:                               #当while循环体内执行完毕或者跳出循环时候执行打印"不玩了,不玩了,游戏结束"
  21.     print("不玩了,不玩了,游戏结束")
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
当回首遇上转身 + 3 + 3 行行注释,果然学的很认真,大大的赞,继续.

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-6 15:03:52 | 显示全部楼层
本帖最后由 李金龙 于 2017-5-6 15:06 编辑
  1. #-*-coding:utf-8-*-
  2. print("-------------------------猜数字小游戏---------------------------")
  3. from random import randint
  4. xinxiang=randint(1,100)
  5. print(xinxiang)
  6. a=1
  7. while a<=3:
  8.     shuru = input("请输入一个正整数:")
  9.     if shuru.isdigit():
  10.         shuru2 =int(shuru)
  11.         if shuru2==xinxiang:
  12.             print("恭喜你猜对了,不过猜对了也没奖励给你呦")
  13.             break
  14.         elif shuru2<xinxiang:
  15.             print("不好意你猜的比我想的数字小了")
  16.         elif shuru2>xinxiang:
  17.             print("咳咳,这次你猜比我想的数字大了")
  18.     else:
  19.           print("对不起,您输入的不是正整数,请重新输入")
  20.     a += 1
  21. else:
  22.     print("不玩了,不玩了,游戏结束")
复制代码


非数字状态下,循环不被数量限制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-7 11:18:36 | 显示全部楼层
李金龙 发表于 2017-5-6 15:03
非数字状态下,循环不被数量限制

恩恩,谢谢提醒,有时间我继续完善一下吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-7 11:21:48 | 显示全部楼层
谢谢,我觉得要学编程不就的有这种精神吗?我觉得我这种方法最慢但是也是最有效的,希望在你们的鼓励下我慢慢成长起来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 10:17:54 | 显示全部楼层
李金龙 发表于 2017-5-6 15:03
非数字状态下,循环不被数量限制

经过你的提醒,我把程序又一次做了优化,这次是当用户输入不是整数时候也会有次数限制的,还有什么意见欢迎提出!代码如下:
  1. #-*-coding:utf-8-*-
  2. print("-------------------------猜数字小游戏---------------------------")
  3. from random import randint  #导入随机函数
  4. xinxiang=randint(1,10)   #定义随机数的取值范围
  5. a=0 #定义进入循环条件
  6. while a<3:  #符合条件的进入循环体
  7.     shuru = input("请输入一个正整数:")  #让用户输入一个正整数,但是这里的变量shuru是一个字符串类型
  8.     a+=1    #循环体控制循环次数的累加器
  9.     if shuru.isdigit(): #这里的if语句是判断用户输入的是不是数字变量,是就执行下去,不是就执行此if对应的else
  10.         shuru=int(shuru)    #当输入的变量符合上层条件,这里讲字符串转为int整型变量,否则无法和随机数做比较
  11.         if shuru==xinxiang: #用户输入等于随机数,输出猜对了
  12.             print("恭喜您猜对了,不过没什么奖励给你哦")
  13.             break   #程序没必要继续执行下边的,直接跳出循环来终结循环次数
  14.         elif shuru<xinxiang:    #用户输入小于随机数打印小了
  15.             print("不好意思,猜小了,猜小了")
  16.         elif shuru>xinxiang:    #用户输入大于随机数打印大了
  17.             print("不好意思,猜大了,猜大了")
  18.     else:   #这里的else语句下面的是当用户不按程序规则输入时候执行的语句
  19.         list=["由于您输入的不是整数您浪费了",a,"次机会了"]    #这里提示用户不按要求输入浪费了几次机会
  20.         print(list)
  21. print("不和你玩了,游戏结束") #循环结束打印游戏结束
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 10:58:32 | 显示全部楼层
浪里花 发表于 2017-5-8 10:17
经过你的提醒,我把程序又一次做了优化,这次是当用户输入不是整数时候也会有次数限制的,还有什么意见欢 ...
  1.         list=["由于您输入的不是整数您浪费了",a,"次机会了"]    #这里提示用户不按要求输入浪费了几次机会
  2.         print(list)
复制代码

请输入一个正整数:1.2
['由于您输入的不是整数您浪费了', 1, '次机会了']
请输入一个正整数:1.2
['由于您输入的不是整数您浪费了', 2, '次机会了']
请输入一个正整数:a
['由于您输入的不是整数您浪费了', 3, '次机会了']
不和你玩了,游戏结束

可以简写
  1. print("由于您输入的不是整数您浪费了一次机会了,还剩下",3-a,"次机会")
复制代码
这个a的值是,输入了居然越来越多了。
还可以再优化,就是当没有机会的时候,可以不用提示这一句话,直接提示游戏结束



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 11:30:32 | 显示全部楼层
李金龙 发表于 2017-5-8 10:58
请输入一个正整数:1.2
['由于您输入的不是整数您浪费了', 1, '次机会了']
请输入一个正整数:1.2

OK,让程序更简洁了,厉害,我啥时候才能到您的水平,我这是工作时间抽时间学的,总共也没一个礼拜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 17:56:29 | 显示全部楼层
浪里花 发表于 2017-5-8 11:30
OK,让程序更简洁了,厉害,我啥时候才能到您的水平,我这是工作时间抽时间学的,总共也没一个礼拜{:9_24 ...

一样的  搞不好你学得会比我快,我才到22课
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-13 07:55:44 | 显示全部楼层
加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-28 18:06:23 | 显示全部楼层
不错不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 05:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表