2016-03-28 18 views
0

Programlamada yeniyim ve python öğrenmeyi bir öneriden öğrenmeye başladım, öğrenmeyi Öğrenme python'unu zor yoldan ve kod akademisinden bir araya getiriyorum.Python: oyuna devam edildikten sonra devam et py2exe

Kod akademisinden Pig latin oyununu yaptım ve birazcık tweaked yaptım, ancak bir kere p2exe'nin yardımıyla bir exe olarak pencerede çalışıp onu artık çalıştırmayacağım ve sadece merak ediyorum. Benim betiğimi biraz değiştirmek için doğru yönde bana işaret edebilirdi.

print "Let's do some Pig Latin!" 
pyg = 'ay' 

original = raw_input('Enter a word:') 

word = original.lower() 
first = word[0] 
new_word = word + first + pyg 


if len(original) > 0 and original.isalpha(): 
    print new_word [1:] 
    again = raw_input('Would you like to play again? Y/N \n').upper() 
else: 
    print 'You were supposed to enter a word!,Try again' 
    execfile ('pig.py') 

if again == 'Y': 
    execfile ('pig.py') 
else: 
    print 'Goodbye!' 

sadece execfile ile senaryoyu yeniden çalıştırmadan bütün gerçeği çalışır Bak, ama belli ki bu zaten yazmıştım çünkü exe dosyası olarak, bazı diğer sorular ve cevaplar baktım ama gelmiş işe yaramaz Kendimi karıştırdım ve sadece senaryoyu nasıl yeniden yapılandıracağımı anlamak için yardıma ihtiyacım var.

Şimdiden herhangi bir yardım için şimdiden teşekkürler.

cevap

0

Dosyayı yeniden yürütme yerine while döngü kullanmalısınız:

should_run = True 
print "Let's do some Pig Latin!" 
while should_run: 
    pyg = 'ay' 

    original = raw_input('Enter a word:') 

    word = original.lower() 
    first = word[0] 
    new_word = word + first + pyg 


    if len(original) > 0 and original.isalpha(): 
     print new_word [1:] 
     again = raw_input('Would you like to play again? [Y/N] \n').upper() 
     while again not in "NY": 
      again = raw_input("Invalid input. Play again? [Y/N] ").upper() 

     should_run = "NY".index(again) # If again is Y, should_run is 1 (True). Otherwise, it is 0 (False) 
    else: 
     print 'You were supposed to enter a word!,Try again' 
+0

Bu çalıştı! Yardımınız için teşekkür ederiz Sadece bunu anlıyorum ve bundan öğreniyorum, daha önce kullanmadığım iki yeni fonksiyon görüyorum 'Not in' ve '.index()' ne ile değil ile neler oluyor? Bu, "" öğesinde herhangi bir şey yapmak için while işlevine geri besleniyor ve eğer o olmasa da sürüyorsa? Bu yüzden ben "NY1234XLZ" türünde teoride yazabilirim ve kullanıcı betiğin herhangi birinde yazmış gibi davranırdı ama eğer bu aralığın dışında bir şey olsaydı, o zaman ne yapardı? .index() Bununla ne olduğunu anladığımdan emin değilim. Tekrar teşekkürler. – Kingbuttmunch

+0

Sen in 'in hakkında doğru değilsin. Python, İngilizcede nasıl okunduğunu okur. Eğer 'tekrar' ne 'N', ne de 'Y' ise, 'while' döngüsü başka bir yineleme yapar. '.index() için, bir dizenin ilk oluşumunun dizinini döndürür. Eğer “tekrar” “Y” ise, “NY” [1] '' '' den bu yana '1 'dönecektir. 'N' 0' olacaktır. Booleanlar ('True' ve' False') gerçekten sadece tamsayılardır. Sıfır, false değerinin bir boole değerine sahiptir ve diğer herhangi bir sayı 'Doğru' boolean değerine sahiptir, yani eğer tekrar 'Y' ise, '' should_run' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '. Eğer 'tekrar'' N' ise '' should_run' '0' veya' False' olacaktır. – zondo

İlgili konular