あなたの問題は、一般的に一連の誤解のようです。コードのエラーは単純ですが、修正されたコードを示したときに完全に理解できるように、いくつかの概念について説明できないかどうか見てみましょう。すでに多くのことを知っていると思いますが、この回答はあなたのためだけでなく、このページに出くわした他の初心者のために書いています. :)
次のトピックを取り上げることができるようです (各概念自体は単純ですが、次の概念を取得するには、それらを完全に取得する必要があります)。
- プログラミングにおける変数
- Python の変数
- Pythonの空白
- 関数: パラメータと引数
- 解決策: コードを修正する
プログラミングにおける変数
おそらくご存知のように、変数は単にデータに付けるラベルです。ほとんどの言語では、変数に適切な型を割り当てることができるように、最初に変数を宣言する必要があります(つまり、コンピューターは、それがinteger、string、booleanなどであるかどうかを認識します)。したがって、次のコードが必要です。
int myVariable1 = 3;
string myVariable2 = "hello";
bool myVariable3 = true;
(一部の言語では、変数を宣言してから値を代入する必要があります。)
Python の変数
Python は、多くのスターター言語とは別に、動的に型付けされます。つまり、変数(データのラベル) には型がありませんが、値には型があります。
つまり、コードは次のようになります
myVariable1 = 3
myVariable2 = "hello"
myVariable3 = True
Python は、変数に割り当てられたデータに基づいて、使用する型を判断できます。
;
(注: Python では、行を終了する必要はなく、boolean
値は大文字 ( True
, `False) です)
Pythonの空白
Python は読みやすいように設計されています。コンピューターは、言語 ( (), [], {}, :, ;, etc
) 内のヒントを使用して、何が起こっているかを認識します。Python では、whitespace
(
) はヒントの一部、またはsyntax
. ほとんどの言語でwhitespace
は は無視されますが、Python は無視しないため、言語を視覚的に快適にフォーマットするために使用できます。C++ では、
function myFunction() {string myString = "wow such learn good job, many doge wow";}
と
function myFunction() {
string myString = "wow such learn good job, many doge wow";
}
同じだ。同じように見えないため、これが新しいプログラマーをどのように混乱させるかがわかります。しかし、Python では、コードは次のようにする必要があります。
def myFunction():
myString = "wow such learn good job, many doge wow"
そして、この統一性が、多くの人にとって Python の扱いを非常に容易にしているのです。
関数: パラメータと引数
すべてのまともな言語では、関数の使用が不可欠であり、関数を完全に理解することはさらに重要です。
関数は、代数の基本概念に簡単に関連付けることができます。関数は代数に既に存在するため、比較は非常に簡単です。
代数では、関数は変数を含む方程式です。関数内では、設定された方程式を使用して作業を行う準備ができており、不足している部分を埋めるのを待っています。つまり、
f(x) = 3 + 2x + x^2
はすぐに使える関数ですが、 を入れる必要がありますx
。
これはプログラミングでも同じことです。私が書くとき
def myFunction(x):
3+2x+x**2
f(x); とまったく同じことを書いています。与えられた情報に依存する作業方程式。
注: すべてのプログラミング関数が正確に計算を行うわけではなく、一部は文字列を操作しますが、それらはすべてデータを変更します。それが私のポイントです。一部の関数は、ユーザーが行っていることとは無関係にデータを操作するため、入力さえ必要ありません。ここでは、比較が多少崩れますが、引き続きご利用いただければ幸いです。
では、引数とは何ですか?パラメータとは何ですか?
関数を定義してから関数を呼び出す場合:
def myFunction(x): #defining the function f(x)
3+2x+x**2
print myFunction(3) #calling the function f(x) where x=3
パラメータはx
最初の行にあります。パラメーターは、関数の定義に入れる変数です。
引数は、関数を呼び出したとき3
にの代わりに配置した です。引数は、関数内の変数に入力するために使用する値です。x
そのため、関数に値3
を指定すると、次の問題が解決されます。
3+2*(3)+(3)^2
3+6+9
9+9
18
もちろん、結果の出力は次のようになりますprint
。
18.
解決策: コードを修正する
これで、コードでエラーが発生する原因となるすべての基本概念について説明しました。元のコードは次のとおりです。
def main():
a=input("Type number")
e=int(a)
function2(e);
def function2(e):
for h in range(e):
print("X")
main();
ここには多数のエラーがあります。
あなたのdef main():
文章はほぼ正しいですが、インデントが十分でない可能性があります。あまり洗練されていないインタープリターを混乱させる可能性のある Python 標準では、インデントとして約4 つのスペースwhitespace
が必要です。
最後にadef main():
も使用していますが;
、これは Python と他の多くの言語との違いとして、構文の問題です。Python は を必要;
とせず、それを削除するだけでそのエラーが修正されます。
で見def function2(e):
た問題以外にエラーはないようですwhitespace
def main():
これはエラーではありませんdef function2(e):
がprint()
、Python 2.7 と Python 3.3 の間で重要な構文の違いです。このため、Python 3.3
将来を見据えてタグを追加します。
を呼び出すmain();
と、エンディング;
は不要になり、削除できます。
これは、機能するコードの改訂版です。
def main():
a = input("Type number")
e = int(a)
function2(e)
def function2(e):
for h in range(e):
print("X")
main()
それが今どのように機能するか完全に理解していますか?すべてを読んで申し訳ありませんが、うまくいけば、すべてのことを経験したので、今はもっと快適です!
ご不明な点がございましたら、下のコメント欄でお気軽にお問い合わせください。
ハッピーコーディング!
PS - あなたはすでにベストアンサーを選んでいるようです。でも、これを読んだら考えが変わるかもしれません(;_;)