鱼C论坛

 找回密码
 立即注册
查看: 1325|回复: 4

[已解决]还是上次的代码,循环可以实现, 但是和我想要的不太一样,各位神仙求助!

[复制链接]
发表于 2018-3-19 18:44:50 | 显示全部楼层 |阅读模式

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

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

x
times = 5
secret = 6
print("······```邪恶内心了解程度```······")
print("猜猜我一个月去健身房多少次啊:")
temp1 = input()
guess = int(temp1)
while (guess != secret) and (times >0):
    temp1 = input()
    guess = int(temp1)
    times = times-1
    if guess == secret:
        print("我去,你个猪头不会跟踪我吧,这么了解我。")
        break
    else:
        if guess > secret:
            print("哦呦,你他妈猜的这么多,我没你那么叼的。")
            print("你给老子重新去猜")
        else:
            print("我心里还想多去几次呢。")
            print("朋友啊,多猜点嘛")
            if times > 0:
                print("接着猜接着猜:")
                temp1 = input()
                guess = int(temp1)
            else:
                print("猜了那么多次,估计就你猜不准了,好了好了,不猜了。")
while guess != secret and times == 0:
     temp2 = input("想知道正确答案吗, 输入6就可以晓得答案喽:")
     answer = int(temp2)
     if answer == 6:
        print(secret)
        break
     else:
         print("滚!")
         print("再给你一次重新打数字的机会。")
print("Game Over!!")
print("No more guessing!")








之后使用时出现了这样的事情:


······```邪恶内心了解程度```······
猜猜我一个月去健身房多少次啊:
5

Traceback (most recent call last):
  File "C:\Users\think\Desktop\升学文书\Python\随机测试.py", line 10, in <module>
    guess = int(temp1)
ValueError: invalid literal for int() with base 10: ''
>>>

我是个新手,但这么一条简单的一条代码困了我这个小蠢蛋很久了,求帮忙啊。。。。。。
最佳答案
2018-3-19 20:40:18
首先说明你代码的不足之处:
0.temp=input()   guess = int(temp1)    这里itemp是空字符串啊,所以会报错!
1. 第一个while循环不够简洁,而且  "猜了那么多次,估计就你猜不准了,好了好了,不猜了。“这个语句在第五次猜得时候如果guess》6就不会出现了。
我把代码贴出来,你仔细看看注释吧。
  1. times = 5
  2. secret = 6
  3. print("······```邪恶内心了解程度```······")
  4. temp1 = input("猜猜我一个月去健身房多少次啊:")     #这里的input()函数这样写。
  5. guess = -1                                         #赋予guess一个初始值,保证进入while循环
  6. while (guess != secret) and (times >0):
  7.     guess = int(temp1)
  8.     times = times-1
  9.     if guess == secret:
  10.         print("我去,你个猪头不会跟踪我吧,这么了解我。")
  11.         break
  12.     elif (guess > secret) and (times>0):          #这里用elif语句来写会非常简洁,但是条件改变一下
  13.         print("哦呦,你他妈猜的这么多,我没你那么叼的。")
  14.         temp1=input("你给老子重新去猜")
  15.     elif (guess < secret) and (times>0):         #这里的条件也要改变
  16.         print("我心里还想多去几次呢。")
  17.         temp1=input("朋友啊,多猜点嘛")          #这里需要重新给temp1赋值,因为我把你下面的删除了
  18.     elif times==0:
  19.         print("猜了那么多次,估计就你猜不准了,好了好了,不猜了。")
  20.    
  21. while guess != secret and times == 0:
  22.      temp2 = input("想知道正确答案吗, 输入6就可以晓得答案喽:")
  23.      answer = int(temp2)
  24.      if answer == 6:
  25.         print(secret)
  26.         break
  27.      else:
  28.          print("滚!")
  29.          print("再给你一次重新打数字的机会。")
  30. print("Game Over!!")
  31. print("No more guessing!")
复制代码

这样整体就比较简洁了,希望你能看一下哪里不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-19 18:57:10 | 显示全部楼层
你的问题是是因为你的代码多了好几处的输入,稍作修改就可以了。你可以看一下我稍稍修改了之后的代码。
  1. times = 5
  2. secret = 6
  3. print("······```邪恶内心了解程度```······")
  4. print("猜猜我一个月去健身房多少次啊:")
  5. guess = -1
  6. while (guess != secret) and (times >0):
  7.     temp1 = input()
  8.     guess = int(temp1)
  9.     times = times-1
  10.     if guess == secret:
  11.         print("我去,你个猪头不会跟踪我吧,这么了解我。")
  12.         break
  13.     else:
  14.         if guess > secret:
  15.             print("哦呦,你他妈猜的这么多,我没你那么叼的。")
  16.             print("你给老子重新去猜")
  17.         else:
  18.             print("我心里还想多去几次呢。")
  19.             print("朋友啊,多猜点嘛")
  20.             if times > 0:
  21.                 print("接着猜接着猜:")
  22.             else:
  23.                 print("猜了那么多次,估计就你猜不准了,好了好了,不猜了。")
  24. while guess != secret and times == 0:
  25.     temp2 = input("想知道正确答案吗, 输入6就可以晓得答案喽:")
  26.     answer = int(temp2)
  27.     if answer == 6:
  28.         print(secret)
  29.         break
  30.     else:
  31.         print("滚!")
  32.         print("再给你一次重新打数字的机会。")
  33. print("Game Over!!")
  34. print("No more guessing!")
复制代码
3.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-19 19:05:53 | 显示全部楼层
times = 5
secret = 6
print("······```邪恶内心了解程度```······")
guess = 0
while (guess != secret) and (times >0):
    print('提示:输入的必须是整数')
    temp1 = input('猜下我一个月去健身房多少次吧!')
    guess = int(temp1)
    if guess == secret:
        print("我去,你个猪头不会跟踪我吧,这么了解我。")
        break
    else:
        if guess > secret:
            print("哦呦,你他妈猜的这么多,我没你那么叼的。")
            print("你给老子重新去猜")
            times = times - 1
        else:
            print("我心里还想多去几次呢。")
            print("朋友啊,多猜点嘛")
            times = times - 1

while guess != secret and times == 0:
     temp2 = input("想知道正确答案吗, 输入6就可以晓得答案喽:")
     answer = int(temp2)
     if answer == 6:
        print('答案是%s兄弟' % secret)
        break
     else:
         print("滚!")
         print("再给你一次重新打数字的机会。")
print("Game Over!!")
print("No more guessing!")
# 这样就好了

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

使用道具 举报

发表于 2018-3-19 19:08:54 | 显示全部楼层

times = 5
secret = 6
print("······```邪恶内心了解程度```······")
print("猜猜我一个月去健身房多少次啊:")
temp1 = input() # 这里一次input
guess = int(temp1)
while (guess != secret) and (times >0):
    temp1 = input() # 这里一次input 跟上一次重复 字符串类型
    guess = int(temp1) # 这是里面必须是整数型才能转换,如果输入数字就会报错,因为你没学字符串所以就不给你说你听不懂
    times = times-1
    if guess == secret:
        print("我去,你个猪头不会跟踪我吧,这么了解我。")
        break
    else:
        if guess > secret:
            print("哦呦,你他妈猜的这么多,我没你那么叼的。")
            print("你给老子重新去猜")
        else:
            print("我心里还想多去几次呢。")
            print("朋友啊,多猜点嘛")
            if times > 0:
                print("接着猜接着猜:")
                temp1 = input()  # 这里一次input 会卡在这里 因为他不是循环只要times > 0 执行else语句 他就会执行一次
                guess = int(temp1)
            else:
                print("猜了那么多次,估计就你猜不准了,好了好了,不猜了。")
while guess != secret and times == 0:
     temp2 = input("想知道正确答案吗, 输入6就可以晓得答案喽:")
     answer = int(temp2)
     if answer == 6:
        print(secret)
        break
     else:
         print("滚!")
         print("再给你一次重新打数字的机会。")
print("Game Over!!")
print("No more guessing!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-19 20:40:18 | 显示全部楼层    本楼为最佳答案   
首先说明你代码的不足之处:
0.temp=input()   guess = int(temp1)    这里itemp是空字符串啊,所以会报错!
1. 第一个while循环不够简洁,而且  "猜了那么多次,估计就你猜不准了,好了好了,不猜了。“这个语句在第五次猜得时候如果guess》6就不会出现了。
我把代码贴出来,你仔细看看注释吧。
  1. times = 5
  2. secret = 6
  3. print("······```邪恶内心了解程度```······")
  4. temp1 = input("猜猜我一个月去健身房多少次啊:")     #这里的input()函数这样写。
  5. guess = -1                                         #赋予guess一个初始值,保证进入while循环
  6. while (guess != secret) and (times >0):
  7.     guess = int(temp1)
  8.     times = times-1
  9.     if guess == secret:
  10.         print("我去,你个猪头不会跟踪我吧,这么了解我。")
  11.         break
  12.     elif (guess > secret) and (times>0):          #这里用elif语句来写会非常简洁,但是条件改变一下
  13.         print("哦呦,你他妈猜的这么多,我没你那么叼的。")
  14.         temp1=input("你给老子重新去猜")
  15.     elif (guess < secret) and (times>0):         #这里的条件也要改变
  16.         print("我心里还想多去几次呢。")
  17.         temp1=input("朋友啊,多猜点嘛")          #这里需要重新给temp1赋值,因为我把你下面的删除了
  18.     elif times==0:
  19.         print("猜了那么多次,估计就你猜不准了,好了好了,不猜了。")
  20.    
  21. while guess != secret and times == 0:
  22.      temp2 = input("想知道正确答案吗, 输入6就可以晓得答案喽:")
  23.      answer = int(temp2)
  24.      if answer == 6:
  25.         print(secret)
  26.         break
  27.      else:
  28.          print("滚!")
  29.          print("再给你一次重新打数字的机会。")
  30. print("Game Over!!")
  31. print("No more guessing!")
复制代码

这样整体就比较简洁了,希望你能看一下哪里不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 20:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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