簡體   English   中英

隨機數生成器的Python代碼未按預期打印

[英]Python code for random number generator not printing as expected

抱歉,如果這是一個愚蠢的問題,我已經對其進行了研究,發現類似的代碼可以工作並應用相同的布局,但是由於某些原因,當我運行我的代碼時,它不會打印num或true或false的結果,而只是顯示一個空白行。 我正在使用Python 2,我想念什么? rand_divis_3函數應該只是生成一個隨機數,並根據其是否可以被3整除而輸出True或False。非常感謝,我是python的新手

import random
def rand_divis_3():
    num = random.randint(0,100)
    print num
    if num % 3 == 0:
        print True
    else:
        print False

您實際上需要調用該函數。 如果這樣做,您會注意到您的功能運行良好。

>>> rand_divis_3()
26
False

>>> rand_divis_3()
15
True

您所做的只是定義功能以供將來使用。

如您所知,Python是一種腳本語言。 它的工作方式與您可能對C / C ++ / Java所體驗的有點不同。 在C / Cpp / Java中,您有一個主類和/或一個可用的主要函數,它們是程序執行的起點。

對於python,沒有指定語言的主要函數或類,您必須定義自己的類並進行調用。

您所做的只是定義函數而不使用它,因此調用函數。

片段:

import random
def rand_divis_3():
    num = random.randint(0,100)
    print num
    if num % 3 == 0:
        print True
    else:
        print False

這將創建一個函數rand_divis_3,該函數將創建並存儲在內部存儲器中。 問題是您必須調用該函數。

>>>rand_divis_3()
93

現在這部分很棘手,python是一門真正擁有數百萬個庫的語言,您可以在https://pypi.python.org上找到它們,也可以創建自己的庫。

假設您編寫了這段代碼

import random
def rand_divis_3():
        num = random.randint(0,100)
        print num
        if num % 3 == 0:
            print True
        else:
            print False
rand_divis_3() #This is where the function is executed

您調用了這個file.py並將其執行為python file.py,它當然會首先隨機導入,然后創建一個名為rand_divis_3的對象,並在內部指向該函數。 當涉及到rand_divis_3() ,它將執行此行,這實際上將為您生成一個隨機數,並相應地打印該數字和True / False。

假設您需要創建一個庫,那么就會遇到問題,因為import filefile.py腳本是從上到下執行的。

為了避免這種情況,您可以做

  1. from file import rand_divis_3替換import file ,該from file import rand_divis_3有選擇地導入一個函數,但是如果您在某個實際項目中工作,則不建議這樣做,請看#2
  2. 在腳本末尾添加此行,

    如果名稱 ==' main ':rand_divis_3()

在file.py的末尾加上這一行,當您執行python file.py ,它將調用該函數,但是如果您import file ,則不會調用rand_divis_3函數。

這背后的原因是在執行任何python腳本時, 名稱變量是main

因此,您的最終文件將如下所示:

import random
def rand_divis_3():
        num = random.randint(0,100)
        print num
        if num % 3 == 0:
            print True
        else:
            print False

if __name__=='__main__':
   rand_divis_3() # function is called  only when you execute the script

注意:這非常重要,當您學習該語言來做一些事情時,Cyber​​所說的有效,但是當您認真學習編程時,這將很方便,我花了很長時間才意識到它的重要性。

我在這里為python新手創建了一個github存儲庫, http://github.com/thewhitetulip/SamplePythonScripts

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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