最初に、私は完全にコーディングが新しくなっていると言わざるを得ないので、私が抱える問題は最も愚かなミスステイクによって引き起こされるかもしれません。Python:無効な構文グローバル変数を使用
+、 - 、*、/を計算できる電卓を作ろうとしています。 また、受信したメッセージが無効な場合は、エラーメッセージを表示して新しい操作シンボルを要求することになっています。 funtion "main"が無効なfuntionを受信したために実行されているかどうか、または最初に実行されているかどうかをコンピュータに知らせるために、 "check"というグローバル変数を使用しようとしています。最初はcheckが1に設定されているため、コンピュータは操作を求めるときに最初のフレーズを使用します。無効な操作が入力された場合、変数 "check"は1だけインクリメントされ、新しい操作を要求するときに2番目のフレーズ(エラーメッセージ)につながります。
問題は、スクリプトを実行しようとすると、「グローバルチェック= 1」の最初の行に構文エラーが発生することです。何が間違っているのですか?それは不要だどこにglobal
を入れている
global check = 1
#returns num1 + num2
def add(num1,num2):
return num1 + num2
#returns num1 - num2
def sub(num1,num2):
return num1 - num2
#returns num1 * num2
def mul (num1,num2):
return num1 * num2
#returns num1/num2
def div (num1,num2):
return num1/num2
#Main Function
def main():
if(global check == 1): #checks if "main" has been read before, if it has, then it is read agian because of invalid operation, and the global "check" should be higher than 1.
operation = input("Choose an operation! (+,-,*,/")
else:
operation = input("You must choose a valid operation! (+,-,*,/")
if(operation != "+" and operation != "-" and operation != "*" and operation != "/"):
global check = global check + 1
main()
else:
var1 = int(input("Enter number 1 :"))
var2 = int(input("Enter number 2 :"))
if(operation == "+"):
print(add(var1,var2))
elif(operation == "-"):
print(sub(var1,var2))
elif(operation == "*"):
print(mul(var1,var2))
else:
print(div(var1,var2))
main()
、私はそのようにそれを入力しdidntのが、それはまだそのように置かれています... –
SOはマークダウンを使用しているからです。今修正されました。私には 'global'を使う理由はないと思われます:ここでは' check'はすでにグローバルです... –
そして、あなたがそれを修正したら、間違って 'global'を置く場所がいくつかあります。それはキーワードなので、式で使うことはできません。 –