【问题标题】:Print all words in a String without split() function在没有 split() 函数的情况下打印字符串中的所有单词
【发布时间】:2016-09-23 01:30:50
【问题描述】:

我想在 Python 3 中使用 split() 函数逐行打印出字符串中的所有单词。

短语是用户的 str(input),它必须打印字符串中的所有单词,无论它的大小。这是我的代码:

my_string = str(input("Phrase: "))
tam = len(my_string)



s = my_string
ch = " "
cont = 0
for i, letter in enumerate(s):
    if letter == ch:
        #print(i)
        print(my_string[cont:i])
        cont+=i+1

对此的输出是:

短语:你好,我的朋友

Hello
there

它只打印字符串中的两个单词,我需要它逐行打印所有单词。

【问题讨论】:

  • 您的代码是否打印了任何空白行?如果是这样,为什么会这样?提示:仔细观察cont 的值以及它是如何变化的。
  • 不,我的意思是在前两个词之后。
  • 它只打印两个单词,甚至没有空行
  • 这不是我得到的。您是否正在运行上面的代码?您确定smy_string 相同吗(您不需要为同一个字符串使用两个名称;只使用一个会使代码更清晰)。
  • 您还应该看看如果输入中只有一个单词(例如“Hello”)会发生什么。

标签: string python-3.x printing words


【解决方案1】:

如果这不是家庭作业问题,我很抱歉,但我会让你弄清楚原因。

a = "Hello there my friend"
b = "".join([[i, "\n"][i == " "] for i in a])
print(b)
Hello
there
my
friend

您可以添加一些变体,而使用 if-else 语法无法轻松获得这些变体:

print(b.Title())  # b.lower() or b.upper()
Hello
There
My
Friend

【讨论】:

  • 您是否故意试图混淆? [i if i != " " else "\n" for i in a] 更直接。
  • 是的......并且没有......我给出的变体展示了与传统 if else 语法不同的方法,如果它是家庭作业,这将是预期的答案。这可能是我最初接受的答案不再存在的原因:)
  • 显然,(x,y)[bool] 主题在“ternery”(实际上是条件表达式)之前是标准的。在我之前:)。这对我来说似乎很合理,尤其是当你想要简洁时,但我认为在列表理解中很难阅读。
  • CS 的第一门课程,1969 年...我仍然喜欢语言的演变和对旧事物的重新发现。
  • 我的第一行代码是在 2014 年秋季的 CS 课上,虽然我是 CS 大器晚成的人,在 25 岁时在当地社区学院参加 bac 后课程以完成申请硕士课程的要求。不过,我想我在小学时确实接触过 BASIC,而在初中/高中时,我会在我的 Ti-83 计算器上摆弄小程序。
【解决方案2】:
def break_words(x):
    x = x + " " #the extra space after x is nessesary for more than two word strings
    strng = ""
    for i in x: #iterate through the string
        if i != " ": #if char is not a space
            strng = strng+i #assign it to another string
        else:
            print(strng) #print that new string
            strng = "" #reset new string
break_words("hell o world")

output:
   hell
   o
   world

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2020-09-13
    • 2015-05-26
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    相关资源
    最近更新 更多