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
乱码了
好啦,已经改了 zltzlt 发表于 2020-7-12 20:37
重新发一遍吧,乱码了
乱码改完啦,hxd快来吧{:10_266:} 我真的是个好人 发表于 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('游戏结束,不玩啦^_^') zltzlt 发表于 2020-7-12 20:45
这样试试:
可以啦,str我待会再去复习下,谢谢大佬!{:10_275:}
本帖最后由 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('游戏结束,不玩啦^_^') Twilight6 发表于 2020-7-12 21:38
帮你稍微优化了下:
代码优化了很多欸,厉害厉害{:10_275:},就是没看懂怎么把两段差不多的代码合二为一的{:7_122:} 我真的是个好人 发表于 2020-7-12 21:56
代码优化了很多欸,厉害厉害,就是没看懂怎么把两段差不多的代码合二为一的
if temp == '1':
max_num = 6
else:
max_num = 12
number1 = random.randint(1,max_num) Twilight6 发表于 2020-7-12 21:58
这四行代码的效果啊,看懂了,但是还没学到这,等以后学会了就可以自己用了
我真的是个好人 发表于 2020-7-12 22:01
这四行代码的效果啊,看懂了,但是还没学到这,等以后学会了就可以自己用了
不会啊,你肯定学了,这就只判断下你输入的是 1 还是 2 来设置参数的最大值.... Twilight6 发表于 2020-7-12 22:02
不会啊,你肯定学了,这就只判断下你输入的是 1 还是 2 来设置参数的最大值....
啊这,我以为max_num才是主角 我真的是个好人 发表于 2020-7-12 22:06
啊这,我以为max_num才是主角
max_num 你瞎设置也行比如设置成 a 、b、c 就是个普通的变量,确实这个变量是主角,因为是这个变量控制大小的,但是控制大小的前提还是 if 判断你输入的是 1 还是 2 Twilight6 发表于 2020-7-12 22:07
max_num 你瞎设置也行比如设置成 a 、b、c 就是个普通的变量,确实这个变量是主角,因为是这个变量控 ...
嗷,懂了,找到了一个小bug,摇两个骰子最小数仍然是1,我试着自己给它改下{:10_268:} 我真的是个好人 发表于 2020-7-12 22:19
嗷,懂了,找到了一个小bug,摇两个骰子最小数仍然是1,我试着自己给它改下
是我疏忽了,你自己改改吧 Twilight6 发表于 2020-7-12 22:20
是我疏忽了,你自己改改吧
改好啦{:10_298:}
应该懂了,原来max只是一个变量名,之前看得迷迷糊糊
页:
[1]