私はまだ学んでいますPython 11歳の子供たちに言語の基本的な概念を教えたいので(私は教師として働いています)。 Pythonは、新しいカリキュラムが導入され、英国全体で教えられる言語であり、私は望んでいない言語です。)子供たちに悪い習慣を教えるために。以下は私が書いた小さなプログラムです、うん、それは悪いことだと知っていますが、改善についてのアドバイスをいただければ幸いです。
私はまだ言語のチュートリアルを耕しているので、優しくしてください! :o)
# This sets the condition of x for later use
x=0
# This is the main part of the program
def numtest():
print ("I am the multiplication machine")
print ("I can do amazing things!")
c = input ("Give me a number, a really big number!")
c=float(c)
print ("The number", int(c), "multiplied by itself equals",(int(c*c)))
print("I am Python 3. I am really cool at maths!")
if (c*c)>10000:
print ("Wow, you really did give me a big number!")
else:
print ("The number you gave me was a bit small though. I like bigger stuff than that!")
# This is the part of the program that causes it to run over and over again.
while x==0:
numtest()
again=input("Run again? y/n >>>")
if x=="y":
print("")
numtest()
else:
print("Goodbye")
変数x
は必要ないようです
while True:
numtest()
again = input("Run again? y/n >>>")
if again == "y": # test "again", not "x"
print("")
else:
print("Goodbye")
break # This will exit the while loop
あなたは良いスタイルを教えたいので:
グラフを作成する場合を除いて、x
のような変数名は使用しないでください。命名規則とスタイルについては、PEP008を参照してください。
スペースに合わせてください:
c = input ("Give me a number, a really big number!")
c=float(c)
一貫していません。どちらが良いスタイルですか?
本当に無限ループが必要な場合は、次のようにします。
while True: numtest() again = input( "Run run?y/n >>>") if again.lower()。startswith( "n"): print( "Goodbye") break
繰り返しになりますが、break
の使用は悪いスタイルだと考える人もいますが、同意しますか?ブレークが使用されないようにループをどのように書き直しますか?多分あなたの学生のための運動?
あなたはループを壊さなければなりません
あなたの間にあるべきです
再び== 'y':
それによって
again = 'y'
def numtest():
print ("I am the multiplication machine")
print ("I can do amazing things!")
c = input("Give me a number, a really big number!")
c = float(c)
print ("The number", int(c), "multiplied by itself equals", (int(c * c)))
print("I am Python 3. I am really cool at maths!")
if (c * c) > 10000:
print ("Wow, you really did give me a big number!")
else:
print ("The number you gave me was a bit small though. I like bigger stuff than that!")
# This is the part of the program that causes it to run over and over again.
while again == 'y':
numtest()
again = input("Run again? y/n >>>")
if again != "y":
print("Goodbye")
いくつかのうまくいけば有用な解説:
def numtest():
"""Use a docstring. This is the main part of the program. Explain what a function is and why you want to use it. (Because it gives you scope and lets you simplify a complex set of procedures into a single operation.)"""
どのスタイルに従うべきか完全にわからない場合は、 PEP-8 を使用してください。 (あなたのケースでは、異なる行の同じ操作で空白をどのように扱うかが異なります。)
print ("The number", int(c), "multiplied by itself equals",(int(c*c)))
print("I am Python 3. I am really cool at maths!")
コンピューターが浮動小数点演算を整数演算とは異なる方法で処理する方法を教えることは役立つかもしれませんが、それはここでは実際には説明されていません。
c = float(c)
print("The number", int(c), "multiplied by itself equals", (int(c*c)))
numtest
を2回呼び出します代わりにこれを試してください:
again = "y"
while again == "y":
numtest()
again = input("Run again? y/n >>>")
print("")
# Take this out of the loop.
print("Goodbye")