Мое время не ломается, когда должно, и при условии, что …

#python #while-loop

Вопрос:

Вот мой код. Пожалуйста, помогите мне исправить это. Спасибо! Я сделал игру, в которой вы должны запомнить, видели вы номер или нет. И когда ты закончишь, ты выиграешь.

 import random randomlist = [] for i in range(0,50):  n = random.randint(1,50)  if n in randomlist:  continue  else:  randomlist.append(n) life=3 punti=0 numeri_visti=[] difficoltà= int(input("Quanti numeri vuoi indovinare? "))  while life gt; 0 and difficoltà lt;= difficoltà*2:  numero = str(random.choice(randomlist))  check = len(numeri_visti)  print(numero)  risposta=input("Hai già visto questo numero: ")  if risposta == "SI" and numero in numeri_visti:  punti= punti 1  difficoltà= difficoltà 1  print(difficoltà)  elif risposta == "NO" and numero not in randomlist:  numeri_visti.append(numero)  punti= punti 1  difficoltà= difficoltà 1  print(difficoltà)  else:  life= life-1  if check==difficoltà:  print("Hai completato il gioco, sei un asso della memoria!!!") else:  print("Mi dispiace hai perso, ma non arrenderti hai comunque fatto: ",punti," punti !!!")  

Комментарии:

1. Похоже, что difficoltà он принимает только неотрицательные целочисленные значения. Какую ценность, по вашему мнению, она может иметь, такую, которая difficoltà lt;= difficoltà*2 была бы ложной?

2. Единственная ситуация, в которой difficoltà lt;= max_difficoltà было бы Ложно, — это когда difficoltà отрицательно. Я подозреваю, что это не то, что вы намеревались сделать, потому difficoltà lt; 0 что было бы намного проще.

3. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы выделить именно то, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.

Ответ №1:

Если предел сложности должен быть в два раза больше первоначальной сложности, вам нужно сохранить его в начале. Потому что вы продолжаете расти difficoltà , поэтому difficoltà*2 также увеличивается, когда сравниваете их.

 difficoltà= int(input("Quanti numeri vuoi indovinare? ")) max_difficoltà = difficoltà*2  while life gt; 0 and difficoltà lt;= max_difficoltà: