私はユーザーに何らかの情報を要求する関数を書いています。タスクの最後に、正しいかどうか確認するようにユーザーに指示します。 yesまたはyの場合、関数は続行する必要があります。それ以外の場合は、質問を繰り返す必要があります。関数は、ユーザーが入力するものに関係なく、停止した理由を私は把握カント:Python関数が正しくループしていないようです。
157 def runAllfunctions():
158 # getAccessSecretName()
159 mcIPNumber()
160 makeNameMCTag()
161 makeTfvars()
162 makeMainTF()
163 Provisioners()
164 Resources()
165 Outputs()
166
167
168 def runTerraform():
169 getAccessSecretName()
170 infoCorrect = raw_input('Is the information above correct? (y or n)')
171 if infoCorrect.lower() == "yes" or "y":
172 runAllfunctions()
173 else:
174 runTerraform()
175
176 runTerraform()
私は、ユーザーがはい以外のものを入力するか、それがされますY runTerraformを(再実行する場合は、上から起こることを期待)、それが正しいまでユーザーに情報の入力を促します。
を答えはイエスではありませんまたはy
You Entered:
Access Key: asdfds
Secret Key: asfads
Your full name is: dsafd dsafdas
Is the information above correct? (y or n)n
newnumber = 16
Your EC2 instance will tagged:
Name Tag: vlslabs16
Multicast Tag: vlslabmc, 172.16.0.16
時に再求めている必要があります。それは、それが通過すると、機能の残りを実行します正しいたらここ
は、私が見ているものです質問をもう一度。
答えがイエスまたはy確かである:
python terraTFgen.py
Enter Access Key: asdfdsa
Enter Secret Key: asdfads
Enter your name: asdfads
You Entered:
Access Key: asdfdsa
Secret Key: asdfads
Your full name is: asdfads
Is the information above correct? (y or n)y
newnumber = 16
Your EC2 instance will tagged:
Name Tag: vlslabs16
Multicast Tag: vlslabmc, 172.16.0.1
^これが正しいです。
「はい」または「いいえ」の条件がなくなると、何も表示されなくなります。
psが、これは場合、あなたが好奇心旺盛だった、またはこれは
13 def getAccessSecretName():
14 global access_key, secret_key, yourName
15 access_key = raw_input("Enter Access Key: ")
16 secret_key = raw_input("Enter Secret Key: ")
17 yourName = raw_input("Enter your name: ")
18
19 print "\n\nYou Entered:"
20 print "Access Key: %s" % access_key
21 print "Secret Key: %s" % secret_key
22 print "Your full name is: %s\n" % yourName
23 with open (tfVariables,"w") as text_file:
24 text_file.writelines(['access_key = \"'+ access_key +'\"\nsecret_key = \"'+ se cret_key +'\"\n\n\n',
25 'amis = {\n',
26 ' ',
27 'us-west-1 = '+ usWest1ami +'\n',
28 ' ',
29 'us-west-1 = '+ usWest2ami +'\n',
30 ' ',
31 '}'])
感謝を助けている場合に質問をされた機能です!
'' y ''という文字列は真実であるため、 '' what 'または' y''は常に真です。平等テストは、「または」によって配布されません。 infoCorrect.lower()== "yes"またはinfoCorrect.lower()== "y" 'またはinfoCorrect.lower()[" yes "、" y "]'を使用する必要があります。 – Blckknght
@Blckkngt私はあなたが言っていることを得ると思いますが、それはなぜ配布されていませんか?それはどちらの条件にも "間違った"ものが適用されないと論理的に思われますか? – chowpay
'または'は演算子を表示せず、結果の値のみを表示します。 '' foo "==" bar "や" foo "'は 'False'や' 'foo''に相当します。その後、短絡して '' foo ''(これは真実です)を返します。 – Blckknght