浪里花 发表于 2017-5-5 22:34:25

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

这次才算是认认真真的开始学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:03:52

本帖最后由 李金龙 于 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-7 11:18:36

李金龙 发表于 2017-5-6 15:03
非数字状态下,循环不被数量限制

恩恩,谢谢提醒,有时间我继续完善一下吧

浪里花 发表于 2017-5-7 11:21:48

谢谢,我觉得要学编程不就的有这种精神吗?我觉得我这种方法最慢但是也是最有效的,希望在你们的鼓励下我慢慢成长起来

浪里花 发表于 2017-5-8 10:17:54

李金龙 发表于 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:58:32

浪里花 发表于 2017-5-8 10:17
经过你的提醒,我把程序又一次做了优化,这次是当用户输入不是整数时候也会有次数限制的,还有什么意见欢 ...
      list=["由于您输入的不是整数您浪费了",a,"次机会了"]    #这里提示用户不按要求输入浪费了几次机会
      print(list)
请输入一个正整数:1.2
['由于您输入的不是整数您浪费了', 1, '次机会了']
请输入一个正整数:1.2
['由于您输入的不是整数您浪费了', 2, '次机会了']
请输入一个正整数:a
['由于您输入的不是整数您浪费了', 3, '次机会了']
不和你玩了,游戏结束

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



浪里花 发表于 2017-5-8 11:30:32

李金龙 发表于 2017-5-8 10:58
请输入一个正整数:1.2
['由于您输入的不是整数您浪费了', 1, '次机会了']
请输入一个正整数:1.2


OK,让程序更简洁了,厉害,我啥时候才能到您的水平,我这是工作时间抽时间学的,总共也没一个礼拜{:9_240:}

李金龙 发表于 2017-5-8 17:56:29

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

一样的搞不好你学得会比我快,我才到22课

小人 发表于 2017-5-13 07:55:44

加油{:10_279:}{:10_279:}{:10_279:}

老甲鱼与小甲鱼 发表于 2017-5-28 18:06:23

不错不错
页: [1]
查看完整版本: 自学了四五天《猜数字小游戏》自认为我写的还算完美