簡體   English   中英

在 Python 3 中為函數分配變量名

[英]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>有誰知道如何解決這個問題,同時仍然能夠分配變量名以便以后使用能夠進行計算嗎?

您的代碼有幾個問題。 我會將此作為答案發布,因為它比評論更具可讀性

  1. 只導入一次 random,而不是在每種方法中
  2. diceOne() 和 diceTwo() 做同樣的事情,所以只定義一個方法dice()
  3. dice()返回一個值,而不是將dice()分配給random.randint()
  4. 您可以在打印語句中直接調用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()而不是diceOnecall函數。

嘗試:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM