因此,我正在编写一个程序,一旦完成,它将有一个用户滚动2个骰子,然后保持所显示值的运行总和,并将一些点分配给值是滚动的,但我第一次开始时遇到问题。 这是我到目前为止有:在Python中为函数赋一个变量名3
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>
有谁知道如何解决这个问题,同时仍然能够分配变量名称,以便以后能够执行计算?
创建与函数同名的变量是一种糟糕的编程习惯。 – eyllanesc
因为你正在引用这些函数,而不是它们返回的值(你完全忽略了)。你的两个函数也是相同的,所以*为什么你有两个函数?*你应该更像'rollOne = dice()'和'rollTwo = dice()'。 – jonrsharpe
变量只存在于创建它们的上下文中,在您的情况下,变量只存在于函数内部,所以如果您从函数外部打印diceOne,则会将其视为函数。你的代码对我来说似乎很荒谬。 – eyllanesc