![](/img/trans.png)
[英]python - Call a function with a specified variable name assigning value to that variable
[英]Assigning a variable name to a function in Python 3
所以我正在编写一个程序,一旦完成,将让用户掷 2 个骰子,然后保持显示的值的运行总和,并为掷出的值分配一些点,但是我在第一次获得时遇到了问题开始了。 这是我到目前为止:
def diceOne():
import random
a = 1
b = 6
diceOne = (random.randint(a, b))
def diceTwo():
import random
a = 1
b = 6
diceTwo = (random.randint(a, b))
def greeting():
option = input('Enter Y if you would like to roll the dice: ')
if option == 'Y':
diceOne()
diceTwo()
print('you have rolled a: ' , diceOne, 'and a' , diceTwo)
greeting()
(之后,我打算做像diceTwo + diceOne
这样的计算,然后做所有其他的事情——我知道这很粗糙)
但是当它运行时,它没有像预期的那样给出很好的整数值,它返回function diceOne at 0x105605730> and a <function diceTwo at 0x100562e18>
有谁知道如何解决这个问题,同时仍然能够分配变量名以便以后使用能够进行计算吗?
您的代码有几个问题。 我会将此作为答案发布,因为它比评论更具可读性
dice()
dice()
返回一个值,而不是将dice()
分配给random.randint()
您可以在打印语句中直接调用dice()
import random def dice(): a = 1 b = 6 return random.randint(a, b) def greeting(): option = input('Enter Y if you would like to roll the dice: ') if option == 'Y': print('you have rolled a ' , dice(), 'and a ', dice()) greeting()
你必须从你的函数中return
一些东西,以便它们对函数本身之外的任何东西产生影响。 然后,在您的函数greeting()
您必须通过调用diceOne()
而不是diceOne
来call
函数。
尝试:
def diceOne():
import random
a = 1
b = 6
return (random.randint(a, b))
def diceTwo():
import random
a = 1
b = 6
return (random.randint(a, b))
def greeting():
option = input('Enter Y if you would like to roll the dice: ')
if option == 'Y':
diceOne()
diceTwo()
print('you have rolled a: ' , diceOne(), 'and a' , diceTwo())
greeting()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.