def dice():
import random
print("******************************")
print("***** DICE GENERATOR ******")
print("******************************")
#dice choice
user_select=int(input("""Choose the type of dice to roll.
(1)1d4
(2)1d6
(3)1d10
(4)1d12
(5)1d20
:"""))
if user_select==1:
dice=random.randint(1,4)
print(dice)
return
if user_select==2:
dice=random.randint(1,6)
print(dice)
return
if user_select==3:
dice=random.randint(1,10)
print(dice)
return
if user_select==4:
dice=random.randint(1,12)
print(dice)
return
if user_select==5:
dice=random.randint(1,20)
print(dice)
return
在上面的示例代码中,如果我将输入设为1,则生成一个随机数,但是或者其他任何内容都没有返回。我在可视化工具中检查了它,除了1之外的所有值都返回None
答案 0 :(得分:2)
这是因为你在第一个条件后直接返回。我建议你阅读一本关于python的书,并了解函数和返回的工作原理。
答案 1 :(得分:0)
正如其他人所说,问题是return
不在if
区块内。执行所需操作的常用方法是使用elif
:
def dice():
import random
print("******************************")
print("***** DICE GENERATOR ******")
print("******************************")
#dice choice
user_select=int(input("""Choose the type of dice to roll.
(1)1d4
(2)1d6
(3)1d10
(4)1d12
(5)1d20
:"""))
if user_select==1:
dice=random.randint(1,4)
elif user_select==2:
dice=random.randint(1,6)
elif user_select==3:
dice=random.randint(1,10)
elif user_select==4:
dice=random.randint(1,12)
elif user_select==5:
dice=random.randint(1,20)
else:
dice=None
print(dice)
(编辑)注意函数末尾不需要return
语句,因为python会在这里自动返回None
。它无害,有些人更愿意拥有它们。
答案 2 :(得分:0)
如果达到任何return
语句,您必须意识到函数结束。函数是在特定作业/目标上协同工作的小块代码。一旦完成它们,它们可以return
填充或只是任何东西,具体取决于您正在使用的数据类型和函数的目标。
在您的情况下,您需要在最后return
语句后只放置一个print
。