編集:特にPythonの違いに主に関心があるため、提案された複製は私の質問の答えにはなりません。提案された複製は、この質問よりもはるかに広いです。
私は最近Pythonを学び始めました。私は現在 "Learn Python the Hard Way"を読んでいます。アドホックなプログラミングの経験はありますが、今回は最初からすべてをゼロから学びます。
この本では、最初のレッスンの1つがprint
に関するものであり、著者はPython 2.7での使用に関するさまざまな指示を提供しています。たとえば、
print "This is fun."
プログラミングの観点から、ここではprint
が技術的に何と呼ばれているのか疑問に思いました。 一部の研究でこれが見つかった、PEP-3105
その場合、print
を関数にするために作成されます:
Printステートメントは、Guidoの "Python Regrets"プレゼンテーション 1 など、Python 3000で削除される疑わしい言語機能のリストに長く登場しました。そのため、このPEPの目的は新しいものではありませんが、Python開発者の間で大きな論争になる可能性があります。
したがって、print
はPython 2.7のステートメントであり、Python 3の関数です。
しかし、statement
とfunction
の違いの簡単な定義を見つけることができませんでした。私は this をPythonを発明した人も見つけました、Guido van Rossumで、なぜ作るのが良いのかを説明していますステートメントの代わりに関数を出力します。
私が読んだことから、関数はパラメータを取り、値を返すコードであるように見えます。しかし、python 2.7ではこれをprint
していませんか?文字列を受け取り、連結された文字列を返すのではないですか?
Pythonのステートメントと関数の違いは何ですか?
ステートメントは構文構造です。関数はオブジェクトです。 def
のような関数を作成するステートメントがあります:
def Spam(): pass
したがって、ステートメントは、Pythonに関数を作成させたいことを示す方法の1つです。それ以外は、それらの間にはあまり関係がありません。
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では、ネストされたステートメントの場合を除いて、各ステートメントを1行に置く傾向があります。ただし、CやJavaなどの他のプログラミング言語では、コロン(;)で区切られている限り、必要なだけ多くのステートメントを1行に置くことができます。
Python2とPython3の両方で、あなたは呼び出すことができます
print("this is a message")
そして、文字列を標準出力に出力します。これは、どちらも文字列引数を取り込んで出力する、printと呼ばれる関数が定義されているためです。
Python2では、関数を呼び出さずに、標準出力に出力するステートメントを作成することもできました。このステートメントの構文は、Wordの印刷物から始まり、その後に何が印刷されたというものでした。 Python3では、これはもはや有効なステートメントではありません。
print "this is a message"