对此非常新,并且似乎无法将这两个打印在同一行上。 Python 3
isCold= sys.argv[1] == 'True'
isRainy= sys.argv[2] == 'True'
if isCold:
print "cold and",
else:
print "warm and ",
if isRainy:
print('rainy')
else:
print('dry')
继续获得:
冷和
多雨
我需要:
寒冷多雨答案 0 :(得分:1)
print
有end
参数,默认值为\n
,换行符。使用print("cold and", end="")
调用第一个打印件,他们不会跳到下一行。
答案 1 :(得分:0)
在每个print语句的末尾有一个\ n,表示“enter”或“new line”
用+符号构建你的str并在结尾处打印出构建字符串。
答案 2 :(得分:0)
每次调用print
都会导致文本被打印在自己的行上,因为会追加新的行字符。这是mentioned in the documentation -
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
end
的默认值是您在每次调用print
后看到新行的原因。
你可以做的是在你的条件语句中构建一个字符串变量,然后只在最后打印一次 -
output = ''
if isCold:
output += "cold and"
else:
output += "warm and "
if isRainy:
output += 'rainy'
else:
output += 'dry'
print output
另外,我看到你正在分配字符串值而不是布尔值。在python中"True"
与True
不同。您应该分配适当的布尔值。采取以下示例 -
myBool = 'True'
if myBool:
print('Bool is truthy')
myBool = 'False'
if myBool:
print('Bool is STILL truthy')
myBool = False
if myBool:
print('This should not be printed')
答案 3 :(得分:0)
您可以创建一个字符串并打印一次,而不是两次打印调用。
考虑:
print("{} and {}".format(("warm", "cold")[isCold], ("dry", "rainy")[isRainy]))
在这种情况下,您使用每个iCold
和isRainy
的布尔值来索引字符串元组以创建包含所有组合的单个字符串。
你也可以使用Python三元来完成同样的事情:
print("{} and {}".format("cold" if isCold else "warm", "rainy" if isRainy else "dry"))
答案 4 :(得分:0)
Python中的print()函数需要多个参数。其中一个论点是end
。
现在通常,print函数的默认参数为end="\n"
,其中\n
是换行符。这就是为什么你的输出如下:
冷和
下雨 - 而不是:
寒冷多雨
许多人的一个解决方案是指定end
。 end
确定打印字符串的结尾。例如:
>>> print("It is raining", end="!")
It is raining!
>>> print("What", end=",")
What,
因此,要将输出放在同一行,您可以尝试以下操作:
print("cold and", end="")
这将覆盖默认参数'\n'
,您将获得所需的输出。
答案 5 :(得分:0)
你也可以试试这个:
if isCold:
a = "cold and "
else:
b = "warm and "
if isRainy:
print(a+'rainy')
else:
print(b+'dry')
答案 6 :(得分:-1)
使用逻辑和:
if sys.argv[1] == 'True' and sys.argv[2] == 'True':
print("cold and rainy)