同一行上的两个if语句

时间:2017-11-12 10:25:30

标签: python

对此非常新,并且似乎无法将这两个打印在同一行上。 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')

继续获得:

冷和

多雨

我需要:

寒冷多雨

7 个答案:

答案 0 :(得分:1)

printend参数,默认值为\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]))

在这种情况下,您使用每个iColdisRainy的布尔值来索引字符串元组以创建包含所有组合的单个字符串。

你也可以使用Python三元来完成同样的事情:

print("{} and {}".format("cold" if isCold else "warm", "rainy" if isRainy else "dry"))

答案 4 :(得分:0)

Python中的print()函数需要多个参数。其中一个论点是end

现在通常,print函数的默认参数为end="\n",其中\n是换行符。这就是为什么你的输出如下:
冷和
下雨 - 而不是:
寒冷多雨

许多人的一个解决方案是指定endend确定打印字符串的结尾。例如:

>>> 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)