[英]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.