2016-03-28 23 views
-1

ile akış ve sözdizimi hataları yeni ve benim soru diğer python yeniler yardımcı olabilir umuyoruz.Acemi: Stack akışına elif

Ben yürüten bir program oluşturmak için çalışıyorum şu: 1. secret_num == 1-10 3 arasında bu numarayı tahmin etmesini isteyin 1-10
2. arasında rasgele # üretmek eğer tahminim = = secret_num onları tebrik ve onu aldı tahmin number_guesses sayısını (eksi herhangi bir yinelenen tahminlerde) nüsha 4. hesap 5. tahmin çok yüksek veya düşükse onlara

bunun için abc şeyler biliyorum bildirmek tahmin sağlamak Birçoğunuz ama sözdizimi, girinti ve kontrol akışı ile tipik yeni programcı problemleri yaşıyorum. Şu anda elif tahmin == gizli num üzerinde bir sözdizimi alıyorum. Aksi halde, hayatımı kurtarmak için kopyaları hesaba katmak için bu kodu alamıyorum. Herhangi bir yardım için minnettar olurum. Teşekkür ederim .

import random 

def game(): 
# generate a random number between 1 -100 and initiate repeat guess list 
    secret_num=random.randint(1,10) 
# initiate duplicate list and number of guesses 
    already_guesses = [] 
    number_guesses = 0 

    while True: 
# ask for user guess 
     guess = int(input('Guess a number from 1-10> ')) 
# help with guesses and announce if it is correct number! 
# catch someone if they submit the same number 
     if guess in already_guesses: 
      print ("You already guessed that number, try again") 
     already_guesses.append(guess) 
     number_guesses += 1 
     elif guess == secret_num: 
      print("whooohoo! you guessed it, my number is {}".format(secret_num)) 
      print("It took you {} guesses".format(number_guesses - len([already_guesses]))) 
      break 
     elif guess < secret_num: 
      print("You\'re getting hot, try a higher number") 
     else: 
      guess > secret_num 
      print("You\'re cold, try a lower number") 
# ask if they want to play again 
    else: 
     play_again = input("Do you wanna play again? y/n") 
     if play_again != 'n': 
      game() 
     else: 
      print("Bah Bye!") 

game() 
+0

iki satır girintili edilecek. – neil

cevap

0

yanı (yorumlarda belirtildiği gibi girinti sonra) koduyla diğer bazı sorunlar vardır: ihtiyacı yukarıda

import random 

def game(): 
    # Generate a random number between 1-100 and initiate repeat guess list 
    secret_num=random.randint(1,10) 
    # Initiate duplicate list 
    # Consider using a set instead so you don't have to cast it into a set later 
    already_guesses = [] 

    while True: 
    # Ask for user guess 
     guess = int(input('Guess a number from 1-10> ')) 
     # Help with guesses and announce if it is correct number! 
     # Catch someone if they submit the same number 
     if guess in already_guesses: 
      print ("You already guessed that number, try again") 
     elif guess == secret_num: 
      # Format your strings properly 
      print("whooohoo! you guessed it, my number is {0}".format(secret_num)) 
      # See how many unique guesses there were and add the correct guess to it (+1) 
      # To do so just use a set 
      print("It took you {0} guesses".format(
       len(set(already_guesses))+1 
      )) 
      break 
     elif guess < secret_num: 
      print("You\'re getting hot, try a higher number") 
     else: 
      guess > secret_num 
      print("You\'re cold, try a lower number") 
     # Make sure to append the guess to the already_guessed list in any case, not just if the number is in already_guesses 
     # If you only do that in your original if block, already_guesses will always remain empty 
     already_guesses.append(guess) 

    # Ask if they want to play again 
    play_again = input("Do you wanna play again? y/n") 
    if play_again != 'n': 
     game() 
    else: 
     print("Bah Bye!") 

game() 
+0

Teşekkür ederiz BAH Yani '#comments' ilgili kod ile girintili olması gerekir? Çünkü şu anda "elif guess == secret_num satırında" bir sözdizimi hatası iletisi alıyorum Yorumlar girintisi gibi bir şey durum bildirimlerini etkiler mi? Nasılsa çalışıyorum? – user3564925

+0

Evet, bu yüzden elif üzerinde sözdizimi hatası alıyorum? – user3564925

+0

Hiçbir yorum bununla hiçbir ilginiz yok ve stilinize gerçekten bağlı. Çünkü bu iki çizginin girintiliğe ihtiyacı var - elifinizden önce, senin dışında bir şeylerin olamaz; bu satırın 'already_guesses.append (tahmin)' ve bu bir 'number_guesses + = 1 'girintisini yazınız (her ikisini de içeride hizalayarak yazınız. (" Siz zaten ... ")) – Bahrom