鱼C论坛

 找回密码
 立即注册
查看: 3963|回复: 30

[已解决]python一个小问题(顺序混乱)

[复制链接]
发表于 2016-7-25 21:14:55 | 显示全部楼层 |阅读模式
20鱼币
想设计一个次数为3次,正确答案为固定,的猜谜游戏,else 后面能跟 while吗?
最佳答案
2016-7-25 21:14:56
else后面跟while是什么意思?
感觉你这个程序的逻辑有一点混乱,我自己写了一个,你可以参考一下
  1. secret = 8
  2. print('------游戏开始------')
  3. i = 1
  4. while i <= 3:
  5.     temp = input('input a number')
  6.     guess = int(temp)
  7.     i = i + 1
  8.     if guess == secret:
  9.         print('bingo')
  10.         break
  11.     else:
  12.         if guess > secret:
  13.             print('大啦')
  14.         else:
  15.             print('小啦')
  16.    
  17. if i <= 3:
  18.     print('游戏结束')
  19. else:
  20.     print('猜这么多回都猜不对')
复制代码
无标题.jpg

最佳答案

查看完整内容

else后面跟while是什么意思? 感觉你这个程序的逻辑有一点混乱,我自己写了一个,你可以参考一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-25 21:14:56 | 显示全部楼层    本楼为最佳答案   
else后面跟while是什么意思?
感觉你这个程序的逻辑有一点混乱,我自己写了一个,你可以参考一下
  1. secret = 8
  2. print('------游戏开始------')
  3. i = 1
  4. while i <= 3:
  5.     temp = input('input a number')
  6.     guess = int(temp)
  7.     i = i + 1
  8.     if guess == secret:
  9.         print('bingo')
  10.         break
  11.     else:
  12.         if guess > secret:
  13.             print('大啦')
  14.         else:
  15.             print('小啦')
  16.    
  17. if i <= 3:
  18.     print('游戏结束')
  19. else:
  20.     print('猜这么多回都猜不对')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-26 09:13:52 | 显示全部楼层
小甲鱼老师讲过了,这个游戏改版几次目前算比较完善了。你应该给出一个随机值和数字范围,如果范围太大3次根本不可能猜到。参考答案可以根据自己的需要进行改变。。。

import random

times = 3
secret = random.randint(1,10)

print('------------猜数字游戏------------')
guess = 0
print('猜一下现在心里想的是哪个数字:', end=' ')

while (guess != secret) and (times > 0):
    temp = input()
   
    if temp.isdigit():
        guess = int(temp)
        if guess == secret:
            print('太棒了,猜对了!')
            print('哼,猜中了也没有奖励!')
        else:
            if guess > secret:
                print('呵,大了大了~~~')
            else:
                print('嘿,小了,小了~~~')
            if times > 0:
                print('再试一次吧:', end = ' ')
            else:
                print('机会用光咯T_T')
    else:
        print('抱歉,您的输入有误,请输入一个整数:', end = ' ')

    times = times - 1 # 用户每输入一次,可用机会就-1

print('游戏结束,不玩啦^_^')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-26 11:22:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-26 13:55:40 | 显示全部楼层
本帖最后由 xiamion 于 2016-7-26 14:27 编辑
shuofxz 发表于 2016-7-25 23:41
else后面跟while是什么意思?
感觉你这个程序的逻辑有一点混乱,我自己写了一个,你可以参考一下


谢谢,还有,我想插入这个while not,怎么插都不对

secret = 8
print('------游戏开始------')
i = 1
temp = input('input a number')
guess = int(temp)
while not isinstance(temp, int):
    print("抱歉,输入不合法,", end='')
    temp = input("请输入一个整数:")


while i <= 3:
    temp = input('input a number')
    guess = int(temp)
    i = i + 1
    if guess == secret:
        print('bingo')
        break
    else:
        if guess > secret:
            print('大啦')
        else:
            print('小啦')
   
if i <= 3:
    print('游戏结束')
else:
    print('猜这么多回都猜不对')


第二种尝试

secret = 8
print('------游戏开始------')
i = 1
while i <= 3:
    temp = input('input a number')
    guess = int(temp)
    i = i + 1
if temp.isdigit():
        guess = int(temp)
    if  guess == secret:
        print('bingo')
        break
    else:
        if guess > secret:
        print('大啦')
        else:
    if i <= 3:
        print('游戏结束')
    else:
        print('猜这么多回都猜不对')
else:
        print('抱歉,您的输入有误,请输入一个整数:', end = ' ')   


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

使用道具 举报

发表于 2016-7-26 14:42:40 | 显示全部楼层
xiamion 发表于 2016-7-26 13:55
谢谢,还有,我想插入这个while not,怎么插都不对

secret = 8

not isinstance(temp, int):
在这句话之前就已经报错了,所以这里怎么添都不对

出错的地点在guess = int(temp)这里
如果temp不是字符型的数字的话,执行上面语句就会报下面的错误
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    guess = int(temp)
ValueError: invalid literal for int() with base 10: 'a'

这个可以用try .. except ..来解决,在小甲鱼老师后面的课程里面会讲。
  1. try:
  2.     guess = int(temp)
  3. except ValueError:
  4.     print("输入不合法")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-26 15:40:23 | 显示全部楼层
可以加
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-26 20:20:07 | 显示全部楼层
ecret = 8
print('------游戏开始------')
i = 1
temp = input('input a number')
guess = int(temp)
while not isinstance(temp, int):
    print("抱歉,输入不合法,", end='')
    temp = input("请输入一个整数:")


while i <= 3:
    temp = input('input a number')
    guess = int(temp)
    i = i + 1
    if guess == secret:
        print('bingo')
        break
    else:
        if guess > secret:
            print('大啦')
        else:
            print('小啦')
   
if i <= 3:
    print('游戏结束')
else:
    print('猜这么多回都猜不对')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-27 10:17:08 | 显示全部楼层
还没解决吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-27 12:18:52 | 显示全部楼层
这是我写的:
number = 5
N = 3
print("来猜一猜我心里想的数字吧!")
answer = input("请输入数字:")
guess = int(answer)
if guess == number:
    print("right!你猜对啦!厉害!")
else:
    if guess < number:
        print("小了!小了!来个大点的")
    else:
        print("大了啊!!!!")
while guess != number:
    answer = input("错了 重新输入:")
    guess = int(answer)
    if guess == number:
        print("right!你猜对啦!厉害!")
    else:
        if guess < number:
            print("小了!小了!")
        else:
            print("大了啊!!!!")
    N = N - 1
    if N == 0:
        guess = number
        print("哈哈哈!!机会用光啦!!!!")

print("-------------游戏结束--------------")
input()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-27 15:37:05 | 显示全部楼层
其实我不帅 发表于 2016-7-27 12:18
这是我写的:
number = 5
N = 3

下次回复代码记得用代码格式,这样排版更整齐。
在编辑栏有一个<>按钮,点开把代码粘进去就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-27 15:39:01 | 显示全部楼层
shuofxz 发表于 2016-7-27 15:37
下次回复代码记得用代码格式,这样排版更整齐。
在编辑栏有一个按钮,点开把代码粘进去就行

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

使用道具 举报

发表于 2016-7-29 14:52:04 | 显示全部楼层
times = 3
print('--------猜谜游戏--------')
while (times):
    guess = int(input('猜猜数字:'))
    if(guess == 8):
        print('猜对了')
        break
    elif (guess > 8):
        print('大了,大了')
    else :
        print('小了,小了')
    times -= 1
else:
    print ('机会用光啦')
print('游戏结束')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-29 14:52:44 | 显示全部楼层
估计你想写的是这个吧,我也才刚学两天 共同进步
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-29 19:08:45 | 显示全部楼层
  1. # -*- coding: utf-8 -*-
  2. import random
  3. print('-------猜谜游戏--------')
  4. temp = 11
  5. #for i in range(10):
  6. secret = random.randint(1,10)
  7. if temp != secret:
  8.         for i in range(3):
  9.             temp = input('猜猜我心里想的数字:')
  10.             if not isinstance(temp, int):
  11.                     print('请输入一个整数')
  12.             elif temp == secret:
  13.                     print('你猜对了')
  14.                     print('你好棒')
  15.                     break
  16.             elif temp > secret:
  17.                     print('大了~~')
  18.                     print('再试试')
  19.             else:
  20.                     print('小了小了~~')
  21.                     print('再试一次吧')
  22.         print('机会用光咯~')
  23. print('游戏结束,不玩啦~~')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-30 20:13:03 | 显示全部楼层
能啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-3 14:23:50 | 显示全部楼层
应该不能吧,没见过这么干的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-5 09:47:01 | 显示全部楼层
可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-14 18:12:31 | 显示全部楼层
下面几楼的都写得挺好的,零基础的我有涨姿势了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-18 16:45:03 | 显示全部楼层
觉得不可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 11:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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