如果我想在python中的文本之间添加一些输入,我怎么能在没有用户输入内容并按下回车后切换到新行?
E.g:
print "I have"
h = input()
print "apples and"
h1 = input()
print "pears."
应修改为输出到控制台的一行说:
I have h apples and h1 pears.
它应该在一条线上的事实没有更深层的目的,它是假设的,我希望它看起来那样。
答案 0 :(得分:5)
您可以执行以下操作:
print 'I have %s apples and %s pears.'%(input(),input())
基本上你有一个用两个输入共振的字符串。
修改强>
据我所知,要使用两个输入在一行上获取所有内容都不容易实现。你能得到的最接近的是:
print 'I have',
a=input()
print 'apples and',
p=input()
print 'pears.'
将输出:
I have 23
apples and 42
pears.
逗号表示法会阻止print语句之后的新行,但输入后的返回仍然存在。
答案 1 :(得分:3)
虽然另一个答案是正确的,但不推荐使用.format()
,而应使用字符串print "I have {0} apples and {1} pears".format(raw_input(), raw_input())
方法。以下是您可以做的事情。
print("I have {0} apples and {1} pears".format(input(), input()))
此外,根据您的问题,您不清楚自己是否正在使用python2.x或python3.x,因此此处还有python3.x个答案
configure_file ( src/luaconf.h.in ${CMAKE_CURRENT_BINARY_DIR}/luaconf.h )
答案 2 :(得分:0)
如果我理解正确的话,你要做的就是在没有回应换行符的情况下获得输入。如果您使用的是Windows,则可以使用msvcrt模块的getwch方法获取输入的单个字符而不打印任何内容(包括换行符),然后打印字符(如果它不是换行符)。否则,您需要定义一个getch函数:
import sys
try:
from msvcrt import getwch as getch
except ImportError:
def getch():
"""Stolen from http://code.activestate.com/recipes/134892/"""
import tty, termios
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
return ch
def input_():
"""Print and return input without echoing newline."""
response = ""
while True:
c = getch()
if c == "\b" and len(response) > 0:
# Backspaces don't delete already printed text with getch()
# "\b" is returned by getch() when Backspace key is pressed
response = response[:-1]
sys.stdout.write("\b \b")
elif c not in ["\r", "\b"]:
# Likewise "\r" is returned by the Enter key
response += c
sys.stdout.write(c)
elif c == "\r":
break
sys.stdout.flush()
return response
def print_(*args, sep=" ", end="\n"):
"""Print stuff on the same line."""
for arg in args:
if arg == inp:
input_()
else:
sys.stdout.write(arg)
sys.stdout.write(sep)
sys.stdout.flush()
sys.stdout.write(end)
sys.stdout.flush()
inp = None # Sentinel to check for whether arg is a string or a request for input
print_("I have", inp, "apples and", inp, "pears.")