2017-04-05 5 views
1

私はPython言語で作られた少しのソフトウェアを持っています。 行動:Python、答えが分裂しない

  1. 開始
  2. 1から100
  3. に乱数を選択して入力しようとする私に尋ねます。
  4. これは、出力messsageます:

    • 4.1は、それはあなたがそれはあなたのユーザーのすべてのエントリを表示します
    • 4.2をやった試行回数を表示します。
    • 4.3それは再び

問題は、ユーザーのすべての入力のプリントがこの

Vos essais: 33 44556677798082848687887079747271 

代わりのように表示されているセクション4.2の範囲内で再生をお願いしています

Vos essais: 33 44 55 66 77 79 80 82 84 86 87 88 70 79 74 72 71 

私はそれが動作するためにすべてのものを試してみましたが、すべてのスペースイムトンをしようoプリントの各文字をちょうど分離して追加します。 (ive join join()。Split())何もうまく動作しないようです。

私は完全なコードがprofessionnalではないことを知っていますが、私は初心者です。

 liste = tentative 
     for i in str(liste): 
      total = total + i 
      message = total 
    print("Bravo vous avez devinez mon choix après", "\x1b[0;33;40m" + str(compteur) + "\x1b[0m",\ 
"\x1b[0;33;40m"+ "essais!" + "\x1b[0m", "\nVos essais:", str(premieressaie), str(message)) 

答えて

1

あなたの問題は、コードのこのセクションにある:あなたが最後の推測の各文字を反復処理し、ちょうど各桁を追加している

liste = tentative 
    for i in str(liste): 
     total = total + i 
     message = total 

。スペースも追加する必要があります。代わりに、あなただけのこの操作を行うことができます:

message += str(tentative) + ' ' 

しかしを、それがこの問題を解決するための最も神託の方法ではありません。あなたの推測すべてを追跡する方が良いでしょう。そして、あなたがそれをプリントアウトすると、それらを文字列として結合することができます。このように:あなたは、リストを印刷したいとき

guesses.append(str(tentative)) 

とは、その後、次の操作を行います。

print ' '.join(guesses) 
0

桁がすべて巨大であることを考慮すると、

container=[] 
yourstring="your string here" 
for i in range(len(yourstring)): 
    try: 
     container.append(yourstring [i:(i+2)]) 
    except: 
     break 
0

tentative = int(input("Votre essai svp: "))は、その仮usrはinputedどんな数のSTR表現です。あなたは

liste = tentative 
    for i in str(liste): 
     total = total + i 
     message = total 

を行うと

あなたはLISTEのすべての文字をループされています。

ユーザ入力の44番目の数字が最初のループの場合、iは4、合計= "4"、メッセージ= "4"です。 iは再び4になり、メッセージは "44"になります。

3番目の数字が55の場合、最初のループではi = "5"で合計= "445"です。 2番目のループのtotal = "4455"になります。あなたが文字を追加するとき、それらの間にスペースを追加しません。

これを解決するには、forループの外側に自分でスペースを追加することができますtotal += " "。あなたは、リストを使用して、プレイヤーが推測番号のリストが必要な場合

また、message変数はtotal

0

と冗長です。私はこの2つのゲームをプレイしたし、それが正しく動作

def devinettes(): 
    nombre = random.randint(1, 100) 
    compteur = 1 
    total = [] 
    premieressaie = "" 
    message = "" 
    print("J'ai choisi un nombre aléatoire de 1 à 100 inclusivement \n\ 
et je vous invite à deviner de quel nombre il s'agit.") 
    while True: 
     try: 
      tentative = int(input("Votre essai svp: ")) 
      total.append(tentative) 
      break 
     except ValueError: 
      print("Ceci n'est pas un nombre entier.") 
    while tentative != nombre: 
     if tentative < 0: 
      print("Bon, vous en avez assez, ça se voit...") 
      sys.exit() 
     elif tentative > nombre: 
      print("Trop grand! ") 
     elif tentative < nombre: 
      print("Trop petit! ") 
     while True: 
      try: 
       tentative = int(input("Votre essai svp: ")) 
       break 
      except ValueError: 
       print("Ceci n'est pas un nombre entier.") 
     compteur += 1 
     liste = tentative 
     total.append(tentative) 

    message = ' '.join([str(essai) for essai in total]) 
    print("Bravo vous avez devinez mon choix après", "\x1b[0;33;40m" + str(compteur) + "\x1b[0m",\ 
"\x1b[0;33;40m"+ "essais!" + "\x1b[0m", "\nVos essais:", message) 
    reessaie = recommence() 
    return reessaie 

:ここで私はリストにを交換し、1つのまたは2つの余分な変数を削除したコードです。例えば:

J'ai choisi un nombre aléatoire de 1 à 100 inclusivement 
et je vous invite à deviner de quel nombre il s'agit. 
Votre essai svp: 50 
Trop petit! 
Votre essai svp: 75 
Trop petit! 
Votre essai svp: 88 
Trop grand! 
Votre essai svp: 81 
Trop grand! 
Votre essai svp: 78 
Trop petit! 
Votre essai svp: 79 
Trop petit! 
Votre essai svp: 80 
Bravo vous avez devinez mon choix après 7 essais! 
Vos essais: 50 75 88 81 78 79 80 
Rejouer (o/n) ? 
1

私はできるだけ簡単な方法で作られてきたと

message += str(tentative) + " " 

によってmentionnedのようにちょうどそれが超微細と私が持っているもののために十分に簡単な作業です。このラインを使用するために削除します行う。

素早い回答をいただき、ありがとうございました

関連する問題