簡體   English   中英

Python 中的語句和函數有什么區別?

[英]What is the difference between a statement and a function in Python?

編輯:建議的副本並沒有回答我的問題,因為我主要關注的是 Python 中的差異。 建議的重復比這個問題要廣泛得多。

我最近開始學習Python。 我目前正在閱讀“Learn Python the Hard Way” 我有一些特別的編程經驗,但這次我要從頭開始學習一切。

在這本書中,第一堂課之一是關於print ,作者提供了在 Python 2.7 中使用它的各種說明,例如:

print "This is fun."

我發現自己想知道從編程的角度來看,這里在技術上稱為什么print 一些研究發現了這一點,PEP-3105

在這種情況下,使print功能:

長期以來,打印語句一直出現在 Python 3000 中將要刪除的可疑語言功能列表中,例如 Guido 的“Python Regrets”演示1 因此,這個 PEP 的目標並不新鮮,盡管它可能會在 Python 開發人員中引起很大爭議。

所以print在 Python 2.7 中是一個語句,在 Python 3 中是一個函數。

但是我一直無法為statementfunction之間的區別找到一個直接的定義。 我也從發明 Python 的人Guido van Rossum那里發現了這一點,他在其中解釋了為什么打印函數而不是語句會更好。

從我讀過的內容來看,函數似乎是一些接受參數並返回值的代碼。 但是在 python 2.7 中print不是這樣做的嗎? 它不是接受字符串並返回連接的字符串嗎?

Python 中的語句和函數有什么區別?

語句是一種語法結構。 函數是一個對象。 有創建函數的語句,例如def

def Spam(): pass

因此,語句是向 Python 表明您希望它創建函數的一種方式。 除此之外,他們之間真的沒有太大的關系。

Python 中的語句是您編寫的任何代碼塊。 它更像是一個理論概念,而不是一個真實的東西。 如果您在編寫代碼時使用正確的語法,您的語句將被執行(“評估”)。 如果您使用不正確的語法,您的代碼將引發錯誤。 大多數人交替使用“陳述”和“表達”。

查看語句和函數之間差異的最簡單方法可能是查看一些示例語句:

5 + 3 # This statement adds two numbers and returns the result
"hello " + "world" # This statement adds to strings and returns the result
my_var # This statement returns the value of a variable named my_var
first_name = "Kevin" # This statement assigns a value to a variable.
num_found += 1 # This statement increases the value of a variable called num_found
print("hello") # This is a statement that calls the print function
class User(BaseClass): # This statement begins a class definition
for player in players: # This statement begins a for-loop
def get_most_recent(language): # This statement begins a function definition
return total_count # This statement says that a function should return a value
import os # A statement that tells Python to look for and load a module named 'os'

# This statement calls a function but all arguments must also be valid expressions.
# In this case, one argument is a function that gets evaluated
mix_two_colors(get_my_favorite_color(), '#000000')

# The following statement spans multiple lines and creates a dictionary
my_profile = {
  'username': 'coolguy123' 
}

以下是無效語句的示例:

first+last = 'Billy Billson'
# Throws a Syntax error. Because the plus sign is not allowed to be part of a variable name.

在 Python 中,您傾向於將每個語句放在各自的行中,嵌套語句除外。 但在其他編程語言(如 C 和 Java)中,您可以在一行中放置任意數量的語句,只要它們用冒號 (;) 分隔即可。

在 Python2 和 Python3 中,您都可以調用

print("this is a message") 

它會將字符串打印為標准輸出。 這是因為它們都定義了一個名為 print 的函數,該函數接受一個字符串參數並打印它。

Python2 還允許您在不調用函數的情況下將語句打印到標准輸出。 這個語句的語法是它以單詞print 開頭,后面的就是打印出來的。 在 Python3 中,這不再是有效的語句。

print "this is a message"

編輯:建議的重復項無法回答我的問題,因為我主要關注的是Python中的區別。 建議的副本比這個問題要廣得多。

我最近開始學習Python。 我目前正在閱讀“艱苦學習Python” 我有一些專門的編程經驗,但是這次要從頭開始學習所有內容。

在這本書中,第一課是關於print ,作者提供了在python 2.7中使用print的各種說明,例如:

print "This is fun."

我發現自己想知道從編程角度來看這里所謂​​的print技術。 一些研究發現了這一點,PEP-3105

在這種情況下,使print功能:

打印聲明早已出現在要在Python 3000中刪除的可疑語言功能列表中,例如Guido的“ Python Regrets”演示文稿1 因此,盡管在Python開發人員中可能會引起很大爭議,但該PEP的目標並不新。

因此print是Python 2.7中的一條語句,也是Python 3中的一個函數。

但是我一直無法為statementfunction之間的區別找到簡單的定義。 我發現也是誰發明的Python的人,吉多·范羅蘇姆中,他解釋了為什么這將是很好,使打印功能,而不是一個聲明。

從我閱讀的內容來看,函數似乎是一些接受參數並返回值的代碼。 但是print不是在python 2.7中做到這一點嗎? 它不是在接受字符串並返回一個串聯的字符串嗎?

Python中的語句和函數有什么區別?

暫無
暫無

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

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