我是一名蟒蛇新手,并被要求使用while和for循环进行一些练习。我被要求进行程序循环,直到用户仅按<Return>
请求退出。到目前为止,我有:
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
我尝试过:(按照练习中的指示)
if User == <Carriage return>
以及
if User == <Return>
但这只会导致语法无效。 请您以最简单的方式告诉我如何做到这一点。 感谢
答案 0 :(得分:16)
我遇到了这个页面(没有双关语)寻找其他东西。这是我使用的:
while True:
i = input("Enter text (or Enter to quit): ")
if not i:
break
print("Your input:", i)
print("While loop has exited")
答案 1 :(得分:13)
你想要的确切的事情;)
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
答案 2 :(得分:5)
实际上,我想你正在寻找一个运行循环的代码,直到从键盘上按下一个键。当然,程序不应该一直等待用户输入它。
答案 3 :(得分:2)
使用print语句查看raw_input
时enter
返回的内容。然后改变您的测试以与之比较。
答案 4 :(得分:0)
当您按Enter键时,您需要找出用户的样子。我不会给你完整的答案,但提示:解雇翻译并试一试。这并不难;)请注意,默认情况下print的sep为'\ n'(太多了:o)
答案 5 :(得分:0)
if repr(User) == repr(''):
break
答案 6 :(得分:0)
一个非常简单的解决方案,我看你已经说过你了 我希望看到最简单的解决方案。 在停止循环等之后提示用户继续。
raw_input("Press<enter> to continue")
答案 7 :(得分:0)
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.
'''
答案 8 :(得分:0)
这是最好最简单的答案。使用try和except电话。
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."
答案 9 :(得分:0)
你快到了。完成此操作的最简单方法是搜索空变量,这是在输入请求时按Enter键时获得的变量。我的代码是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...')
答案 10 :(得分:0)
这适用于使用并行线程的python 3.5。您可以轻松地将其调整为仅对特定击键敏感。
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()
答案 11 :(得分:-1)
这是一个有效的解决方案(类似于原始版本):
User = raw_input('Enter <Carriage return> only to exit: ')
while True:
#Run my program
print 'In the loop, User=%r' % (User, )
# Check if the user asked to terminate the loop.
if User == '':
break
# Give the user another chance to exit.
User = raw_input('Enter <Carriage return> only to exit: ')
请注意,原始问题中的代码有几个问题:
if
/ else
位于while循环之外,因此循环将永远运行。else
缺少冒号。if
子句执行break
。答案 12 :(得分:-1)
以下是我的作品:
i = '0'
while len(i) != 0:
i = list(map(int, input(),split()))
答案 13 :(得分:-2)
如果您希望用户按Enter键,则raw_input()将返回“”,因此请将用户与“”进行比较:
User = raw_input('Press enter to exit...')
running = 1
while running == 1:
Run your program
if User == "":
break
else
running == 1