我真的是个好人 发表于 2020-7-12 20:34:57

hxd萌,这个摇色子的代码有啥问题

本帖最后由 我真的是个好人 于 2020-7-12 20:39 编辑

昨天上哔哩哔哩看小甲鱼新版python视频(之前看的旧版想着顺便复习下前面内容,实际我旧版也没学多久),然后看到改进小游戏那两级,心血来潮打算自己编一个摇色子的游戏,然后就出大问题了,语法应该没错,但是运行结果不按我想的来:

就......挺突然的{:10_266:}
代码如下,大家帮忙康康出了啥问题吧,可能有大问题{:10_272:},求别嘲讽
import random
temp = int(input('玩哪种,一个骰子还是两个:'))
if temp == 1:
   number1 = random.randint(1,6)
   answer = str(input('开始摇吗?,按1回车开始:'))
   if answer == 1:
         number2 = random.randint(1,6)
         if number2 > number1:
             print('你好走运,我摇的是' + number1 + ',你摇的是' + number2)
         elif number2 == number1:
             print('我俩摇的都是' + number1 + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + number2 + ',我摇的是' + number1 + ',我比你大,哈哈')
if temp == 2:
   number1 = random.randint(2, 12)
   answer = str(input('开始摇吗?,按1回车开始:'))
   if answer == 1:
         number2 = random.randint(2, 12)
         if number2 > number1:
             print('你好走运,我摇的是' + number1 + ',你摇的是' + number2)
         elif number2 == number1:
             print('我俩摇的都是' + number1 + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + number2 + ',我摇的是' + number1 + ',我比你大,哈哈')
print('游戏结束,不玩啦^_^')


代码是文本,我也不知道为啥粘贴上来是这个古怪黑色{:10_277:}
顺便提一下修改意见也是极好的,代码刚才是乱码现在改了,可能代码缩进抄错一些,这里上一张图片:


Twilight6 发表于 2020-7-12 20:35:58

乱码了

zltzlt 发表于 2020-7-12 20:37:36

重新发一遍吧,乱码了

我真的是个好人 发表于 2020-7-12 20:39:55

Twilight6 发表于 2020-7-12 20:35
乱码了

好啦,已经改了

我真的是个好人 发表于 2020-7-12 20:40:57

zltzlt 发表于 2020-7-12 20:37
重新发一遍吧,乱码了

乱码改完啦,hxd快来吧{:10_266:}

zltzlt 发表于 2020-7-12 20:45:47

我真的是个好人 发表于 2020-7-12 20:40
乱码改完啦,hxd快来吧

这样试试:

import random
temp = int(input('玩哪种,一个骰子还是两个:'))
if temp == 1:
   number1 = random.randint(1,6)
   answer = str(input('开始摇吗?,按1回车开始:'))
   if answer == '1':    # answer 是字符串,跟整数比较不可能相等,所以将 1 改为字符串
         number2 = random.randint(1,6)
         if number2 > number1:
             print('你好走运,我摇的是' + str(number1) + ',你摇的是' + str(number2))    # 整型要转化为字符串才能跟字符串拼接
         elif number2 == number1:
             print('我俩摇的都是' + str(number1) + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + str(number2) + ',我摇的是' + str(number1) + ',我比你大,哈哈')
if temp == 2:
   number1 = random.randint(2, 12)
   answer = str(input('开始摇吗?,按1回车开始:'))
   if answer == '1':
         number2 = random.randint(2, 12)
         if number2 > number1:
             print('你好走运,我摇的是' + str(number1) + ',你摇的是' + str(number2))
         elif number2 == number1:
             print('我俩摇的都是' + str(number1) + ',不分胜负哦')
         elif number2 < number1:
             print('你摇的是' + str(number2) + ',我摇的是' + str(number1) + ',我比你大,哈哈')
print('游戏结束,不玩啦^_^')

我真的是个好人 发表于 2020-7-12 21:02:16

zltzlt 发表于 2020-7-12 20:45
这样试试:

可以啦,str我待会再去复习下,谢谢大佬!{:10_275:}

Twilight6 发表于 2020-7-12 21:38:26

本帖最后由 Twilight6 于 2020-7-12 21:58 编辑

我真的是个好人 发表于 2020-7-12 21:02
可以啦,str我待会再去复习下,谢谢大佬!



帮你稍微优化了下:

import random
temp = input('玩哪种,一个骰子还是两个:')

while temp not in ['1','2']:
    temp = input('输入错误,请重新输入(1 or 2):')

if temp == '1':
    max_num = 6
else:
    max_num = 12

number1 = random.randint(1,max_num)
answer = input('开始摇吗?,按1回车开始:')
while answer != '1':
    answer = input('输入错误!准备开始摇吗?,按1回车开始:')
if answer == '1':
    number2 = random.randint(1,max_num)
    if number2 > number1:
      print('你好走运,我摇的是' + str(number1) + ',你摇的是' + str(number2))    # 整型要转化为字符串才能跟字符串拼接
    elif number2 == number1:
      print('我俩摇的都是' + str(number1) + ',不分胜负哦')
    else:
      print('你摇的是' + str(number2) + ',我摇的是' + str(number1) + ',我比你大,哈哈')

print('游戏结束,不玩啦^_^')

我真的是个好人 发表于 2020-7-12 21:56:44

Twilight6 发表于 2020-7-12 21:38
帮你稍微优化了下:

代码优化了很多欸,厉害厉害{:10_275:},就是没看懂怎么把两段差不多的代码合二为一的{:7_122:}

Twilight6 发表于 2020-7-12 21:58:51

我真的是个好人 发表于 2020-7-12 21:56
代码优化了很多欸,厉害厉害,就是没看懂怎么把两段差不多的代码合二为一的

if temp == '1':
    max_num = 6
else:
    max_num = 12

number1 = random.randint(1,max_num)

我真的是个好人 发表于 2020-7-12 22:01:21

Twilight6 发表于 2020-7-12 21:58


这四行代码的效果啊,看懂了,但是还没学到这,等以后学会了就可以自己用了

Twilight6 发表于 2020-7-12 22:02:37

我真的是个好人 发表于 2020-7-12 22:01
这四行代码的效果啊,看懂了,但是还没学到这,等以后学会了就可以自己用了

不会啊,你肯定学了,这就只判断下你输入的是 1 还是 2 来设置参数的最大值....

我真的是个好人 发表于 2020-7-12 22:06:16

Twilight6 发表于 2020-7-12 22:02
不会啊,你肯定学了,这就只判断下你输入的是 1 还是 2 来设置参数的最大值....

啊这,我以为max_num才是主角

Twilight6 发表于 2020-7-12 22:07:35

我真的是个好人 发表于 2020-7-12 22:06
啊这,我以为max_num才是主角

max_num 你瞎设置也行比如设置成   a 、b、c 就是个普通的变量,确实这个变量是主角,因为是这个变量控制大小的,但是控制大小的前提还是 if 判断你输入的是 1 还是 2

我真的是个好人 发表于 2020-7-12 22:19:08

Twilight6 发表于 2020-7-12 22:07
max_num 你瞎设置也行比如设置成   a 、b、c 就是个普通的变量,确实这个变量是主角,因为是这个变量控 ...

嗷,懂了,找到了一个小bug,摇两个骰子最小数仍然是1,我试着自己给它改下{:10_268:}

Twilight6 发表于 2020-7-12 22:20:07

我真的是个好人 发表于 2020-7-12 22:19
嗷,懂了,找到了一个小bug,摇两个骰子最小数仍然是1,我试着自己给它改下

是我疏忽了,你自己改改吧

我真的是个好人 发表于 2020-7-12 22:25:18

Twilight6 发表于 2020-7-12 22:20
是我疏忽了,你自己改改吧

改好啦{:10_298:}

应该懂了,原来max只是一个变量名,之前看得迷迷糊糊


页: [1]
查看完整版本: hxd萌,这个摇色子的代码有啥问题