Je suis un débutant en python et on m'a demandé d'effectuer des exercices en utilisant les boucles while et for. On m'a demandé de faire une boucle de programme jusqu'à ce que exit soit demandé par l'utilisateur, en appuyant sur <Return>
uniquement. Jusqu'à présent j'ai:
User = raw_input('Enter <Carriage return> only to exit: ')
running = 1
while running == 1:
Run my program
if User == # Not sure what to put here
Break
else
running == 1
J'ai essayé: (comme indiqué dans l'exercice)
if User == <Carriage return>
et aussi
if User == <Return>
mais cela n'aboutit qu'à une syntaxe invalide. Pourriez-vous me conseiller sur la façon de procéder de la manière la plus simple possible. Merci
Je suis tombé sur cette page alors que je cherchais autre chose. Voici ce que j'utilise:
while True:
i = input("Enter text (or Enter to quit): ")
if not i:
break
print("Your input:", i)
print("While loop has exited")
La chose exacte que tu veux;)
https://stackoverflow.com/a/22391379/3394391
import sys, select, os
i = 0
while True:
os.system('cls' if os.name == 'nt' else 'clear')
print "I'm doing stuff. Press Enter to stop me!"
print i
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
line = raw_input()
break
i += 1
En fait, je suppose que vous recherchez un code qui exécute une boucle jusqu’à ce que vous appuyiez sur une touche du clavier. Bien entendu, le programme ne devrait pas attendre que l'utilisateur le saisisse tout le temps.
raw_input()
en python 2.7 ou input()
en python 3.0, le programme attend que l'utilisateur appuie sur une touche.kbhit()
dans msvcrt
module.En fait, il existe une recette dans ActiveState où ils ont abordé ce problème. S'il vous plaît suivez ce link
Je pense que les liens suivants vous aideraient également à mieux comprendre.
J'espère que cela vous aide à faire votre travail.
Utilisez une instruction print pour voir ce que raw_input
renvoie lorsque vous appuyez sur enter
. Puis changez votre test pour le comparer.
if repr(User) == repr(''):
break
Vous êtes presque là. Pour ce faire, le moyen le plus simple consiste à rechercher une variable vide, qui correspond à ce que vous obtenez lorsque vous appuyez sur Entrée lors d’une demande d’entrée. Mon code ci-dessous est 3.5
running = 1
while running == 1:
user = input(str('Enter <Carriage return> only to exit: '))
if user == '':
running = 0
else:
print('You had one job...')
Cela fonctionne pour python 3.5 utilisant un threading parallèle. Vous pouvez facilement adapter cela pour qu'il ne soit sensible qu'à une frappe spécifique.
import time
import threading
# set global variable flag
flag = 1
def normal():
global flag
while flag==1:
print('normal stuff')
time.sleep(2)
if flag==False:
print('The while loop is now closing')
def get_input():
global flag
keystrk=input('Press a key \n')
# thread doesn't continue until key is pressed
print('You pressed: ', keystrk)
flag=False
print('flag is now:', flag)
n=threading.Thread(target=normal)
i=threading.Thread(target=get_input)
n.start()
i.start()
une solution très simple serait, et je vois que vous avez dit que vous voudriez voir la solution la plus simple possible. Un message invitant l’utilisateur à continuer après avoir interrompu une boucle, etc.
raw_input("Press<enter> to continue")
Voici la meilleure et la plus simple des réponses. Utilisez essayez et sauf les appels.
x = randint(1,9)
guess = -1
print "Guess the number below 10:"
while guess != x:
try:
guess = int(raw_input("Guess: "))
if guess < x:
print "Guess higher."
Elif guess > x:
print "Guess lower."
else:
print "Correct."
except:
print "You did not put any number."
user_input=input("ENTER SOME POSITIVE INTEGER : ")
if((not user_input) or (int(user_input)<=0)):
print("ENTER SOME POSITIVE INTEGER GREATER THAN ZERO") #print some info
import sys #import
sys.exit(0) #exit program
'''
#(not user_input) checks if user has pressed enter key without entering
# number.
#(int(user_input)<=0) checks if user has entered any number less than or
#equal to zero.
'''
Vous devez savoir à quoi ressemblerait la variable User lorsque vous appuyez simplement sur Entrée. Je ne vous donnerai pas la réponse complète mais un conseil: renvoyez un interprète et essayez-le. Ce n'est pas si difficile;) Notez que le sep de print est '\ n' par défaut (était-ce trop: o)