基本上,我正在尝试在Python中编写一个用户输入句子的代码。但是,我需要我的代码才能删除所有空格(例如选项卡,空格,索引等)并将其打印出来。
这是我到目前为止所拥有的:
def output_without_whitespace(text):
newText = text.split("")
print('String with no whitespaces: '.join(newText))
我很清楚我在这里做错了很多事,我想念很多东西,但是,我还不能彻底解决拆分和连接字符串的问题,所以如果有人解释一下,那就太好了给我
这是我到目前为止的全部代码:
text = input(str('Enter a sentence: '))
print(f'You entered: {text}')
def get_num_of_characters(text):
result = 0
for char in text:
result += 1
return result
print('Number of characters: ', get_num_of_characters(text))
def output_without_whitespace(text):
newtext = "".join(text.split())
print(f'String without whitespaces: {newtext}')
我想出了我的问题! 我在这行代码中意识到了这一点。
print(f'String without whitespaces: {newtext}')
应该是。
print('String without whitespaces: ', output_without_whitespace(text))
我意识到关于为什么没有空格的句子没有回打印出来的问题是因为我没有调出我的函数!
答案 0 :(得分:1)
这将从字符串中删除所有空格。
newtext = text.replace("\t", "")
newtext = text.replace(" ", "")
答案 1 :(得分:1)
您的想法正确,但是以下是使用split
和join
来实现它的方法:
def output_without_whitespace(text):
return ''.join(text.split())
这样:
output_without_whitespace(' this\t is a\n test..\n ')
将返回:
thisisatest..
答案 2 :(得分:1)
一个简单的解决方案是只使用split和rejoin(类似于您正在做的事情):
def output_without_whitespace(text):
return ''.join(text.split())
首先,我们将初始字符串拆分为单词列表,然后将它们全部连接在一起。
请考虑一下:
text.split()
会给我们一个单词列表(由任何空格分隔)。例如:
'hello world'.split() -> ['hello', 'world']
最后
''.join(<result of text.split()>)
将给定列表中的所有单词连接到一个字符串中。所以:
''.join(['hello', 'world']) -> 'helloworld'
有关更多方法,请参见Code Review。
答案 3 :(得分:0)
有几种不同的方法可以执行此操作,但这对我来说似乎是最明显的方法。简单高效。
>>> with_spaces = ' The quick brown fox '
>>> list_no_spaces = with_spaces.split()
>>> ''.join(list_no_spaces)
'Thequickbrownfox'
.split()
(不带参数)将字符串拆分为一个或多个空格字符的列表,而忽略空格...更多详细信息here。
''.join(list_no_spaces)
将列表中的元素连接成一个字符串,而元素之间没有任何内容,这就是您想要的:'Thequickbrownfox'
。
如果您使用过','.join(list_no_spaces)
,则会得到'The,quick,brown,fox'
。
经验丰富的Python程序员倾向于少量使用正则表达式。通常最好使用.split()
和.join()
之类的工具来完成工作,并在没有其他选择的地方保留正则表达式。
答案 4 :(得分:0)
获取输入,拆分,加入
s = ''.join((input('Enter string: ').split()))
Enter string: vash the stampede vashthestampede