我不明白这段代码

时间:2018-07-30 11:34:09

标签: python python-3.x

lines = []
while True:
    s = input()
    if s:  # i don't understand. # What does it have in the program?
      lines.append(s.upper())
    else:
      break
for sentence in lines:
    print(sentence)

我想了解它。请帮我。非常感谢

5 个答案:

答案 0 :(得分:4)

首先,您需要添加缺少的缩进(如Colonbracket所述)

lines = []
while True:
    s = input()
    if s:
        lines.append(s.upper())
    else:
        break

for sentence in lines:
    print(sentence)

由于Python程序的逻辑严重依赖于缩进,因此您在使用缩进时需要格外小心。

有关更多信息,请参见"First Steps Towards Programming" section of Python tutorial

其次,根据我对这段代码的了解,其目的是:

  1. 从标准输入(s = input())中读取行,直到它从用户(break)获得空字符串为止。
  2. 此输入的每一行都转换为大写(s.upper())并存储在列表数据结构(lines.append)中
  3. 用户输入空字符串后,程序会将所有大写字符串输出到标准输出(for sentence in lines: print(sentence)),然后退出。

答案 1 :(得分:1)

在python中,input()方法用于在运行时从用户获取输入。

lines = []
while True:
    s = input()
    if s:  # It checks if the user has entered a string of length>0.
      lines.append(s.upper())
    else:
      break
for sentence in lines:
    print(sentence) 

顺便说一句,我觉得代码格式不正确。基本上,该代码从用户读取输入并将其存储在列表中,只要用户提供有效的字符串即可。否则,它会中断循环并打印所有行。

答案 2 :(得分:0)

我不是最擅长使用Python的人,但是我认为您的缩进方式已无效?

   lines = []

    while True:
        s = input()
        if (s):  #pretty sure you're meant to bracket these maybe i wrong tho
            lines.append(s.upper())
        else:
            break
        for sentence in lines:
            print(sentence)

此外,我不认为For在Pyhton中的工作方式就是这样,但我可能是错的。无论如何,这是一个开始,很抱歉没有超级有用^^

答案 3 :(得分:0)

您的缩进是错误的。 “ else”语句必须在while循环内,否则您将获得无限循环。

在python中,空字符串将被评估为false。只要输入的内容不是空字符串,您的程序就会要求用户输入并将其添加到列表中。如果它是一个空字符串,它将中断while循环,并打印用户在此之前输入的内容。

答案 4 :(得分:0)

lines = []
while True:
    s = input()
    if s: 
        enter code here`lines.append(s.upper())
    else:
        break

    for sentence in lines:
        print(sentence)

您评论的部分等同于:

if s == True: 
    enter code here lines.append(s.upper())

它只是一种较短的输入方法