私はPythonにかなり慣れていませんが、現在、Pythonプログラム内で関数と複数のモジュールを操作することを学んでいます.
「Functions_Practice_Main」(メニューを実行する) と「Functions_Practice」の 2 つのモジュールがあります。これには、ユーザーの入力が 7 で除算されるかどうかに関係なく機能する単純なプログラムのコードが含まれます (私は知っています...かなり退屈な練習です)。
私がやりたいことは、メニューモジュールの実行時にユーザーに名前を入力させ、プログラム全体に表示してこのグローバル変数を取得して、プログラムをより個人的なものにすることです。
ただし、メニュー モジュールを実行すると、名前を 2 回要求されます。最初に入力した名前は「divide by 7」プログラムに表示され、2 番目に入力した名前はメニューに表示されます。なぜこれが起こっているのか理解しています (Functions_Practice モジュールのインポートにより、コードの残りの部分が実行される前に、Functions_Practice_Main モジュール内のグローバル変数が何であるかを知る必要があるため)、しかし、これを修正する方法を本当に知る必要があります。
メニューモジュールの実行時にユーザーに自分の名前を1回入力させ、プログラム全体に表示してこのグローバル変数を取得して、ユーザーにとってより個人的なものにするにはどうすればよいですか。
Functions_Practice_Main
import Functions_Practice, sys
name = input("What is your name? ")
def main():
while True:
print(name, "'s Menu")
print("*******************")
print("1. Can you divide by 7?")
print("2. Quit")
print("*******************")
selection = int(input("Your number selection please..."))
if selection == 1:
Functions_Practice.main()
elif selection == 2:
sys.exit()
else:
print("Your number selection was invalid, please try again...")
if __name__ == '__main__':
main()
*関数_練習*
import Functions_Practice_Main
def inputData(name):
print(name)
number = int(input(" Please enter your number: "))
return number
def processData(number):
answer = number % 7
if answer == 0:
remainder = True
else:
remainder = False
return remainder
def outputData(remainder):
if remainder == True:
print("The number you entered doesn't have a remainder")
elif remainder == False:
print("The number you entered does have a remainder")
def main():
number = inputData(Functions_Practice_Main.name)
remainder = processData(number)
outputData(remainder)
if __name__ == '__main__':
main()