2016-10-12 22 views
3

這是一個接近我發現的其他人的問題,但他們不幫助我,所以我現在特別要求我和我的目的。生成範圍從INPUT(python)的隨機數

我正在編寫一個應該向用戶詢問範圍內的最大值和最小值的bot,然後在該範圍內生成10個隨機數。驗證時,我被告知randomi都是未使用的變量。我真的不明白爲什麼。我相信random.radint應該是一個內置的功能,並且至於i關心我真的不知道該相信什麼。這是我到目前爲止所做的。

def RandomNumbers(): 
    """ 
    Asking the user for a min and max, then printing ten random numbers between min and max. 
    """ 
    print("Give me two numbers, a min and a max") 
    a = input("Select min. ") 
    b = input("Select max. ") 


    for i in range(10): 
     number = random.randint(a, b) 
    print(str(number)+ str(","), end="") 

我會很樂意爲我的任何建議,我可以完成我的任務。先謝謝你!

+0

你是什麼意思「驗證?」 '我'沒有被使用,但沒關係。當你使用for循環只是爲了重複,並且你不需要循環變量時,約定就是使它成爲'_'。我在你的代碼中看到的唯一問題是最後一個'print'語句應該在for循環中 –

+0

如果你正在運行Python 3,使用'a = int(input(「Select min。」))',如果你'在Python 2上使用'a = int(raw_input(「Select min。」))'。 – Matthias

回答

2

幾個值得您的原始功能提點:

  • random模塊不是內置的,你必須明確地導入它。
  • input總是返回字符串,所以你必須將它們轉換爲整數,將它們傳遞給random.randint
  • i確實沒有在您的for循環使用之前。你可以用_代替它(加強這一事實,即由於副作用,例如打印而不是變量本身)。
  • 更多關於函數名的文體側面說明的:PEP8(Python的風格指南)鼓勵結合使用小寫的帶有下劃線分隔單詞,而不是駱駝情況下(random_number VS RandomNumber

這裏的工作例如:

import random 

def random_numbers(): 
    """ 
    Asking the user for a min and max, then printing ten random numbers between min and max. 
    """ 
    print("Give me two numbers, a min and a max") 
    a = int(input("Select min. ")) 
    b = int(input("Select max. ")) 

    numbers = [random.randint(a, b) for i in range(10)] 
    print(','.join(str(n) for n in numbers)) 

random_numbers() 
+0

非常感謝你的全部例子。最後的「random_numbers()」是做什麼的?這似乎是一個elif,它應該在我的主要內容之中,這使我的功能起作用。 – MrBlubbintosh

+0

此外,「導入隨機」必須站在「def random_numbers():」之前嗎?我有一個連續的多個函數,所以havng在def之前導入隨機數就意味着它是我之前函數的最後一行。 – MrBlubbintosh

+0

最後一行僅僅是對'random_numbers'的有效調用(您可以安全地刪除它)。最佳做法建議將導入語句放在文件的頂部。但是你可以把它們放在你的函數中(當然使用相同的縮進)。 – Matt

6

編號random.randint不是內建函數。你必須導入random模塊才能使用該功能。

在另一方面,i是顯然不是在循環使用的,所以你通常使用下劃線_代替i

import random 


numbers = [] 
for _ in range(10): 
    numbers.append(random.randint(a, b)) 

你還會注意到我使用了一個列表來存儲所有來自每次迭代的值。這樣,你不會丟棄以前迭代的值。

如果你不熟悉的列表,你可以檢查出的文檔:

Data structures

列表:

列表中的項目是任意Python對象。列表由 放置一個逗號分隔的表達式列表放在方括號


關於最後一點,以打印清單中的項目形成的,可以使用str.join方法,但畢竟不是項目在你的名單已經從整數轉換爲字符串:

output = ', '.join([str(num) for num in numbers]) 
print(output) 
+1

你是不是指'numbers.append(..)'? –

+0

@Cajuu'謝謝你 –

+0

請注意,在最後一行有一個可能的縮進錯誤,這意味着他丟掉了數字,因爲他只想打印一次。 – jadsq

相關問題