python - 不支持的操作数类型 + 更多问题(很可能)
问题描述
我正在尝试制作一个有损文本压缩程序,但它在第 7 行给我一个错误unsupported operand type(s) for -: 'str' and 'int'
。我要做的是从文本中删除所有元音,除了单词的第一个字母。
text = str(input('Message: '))
text = (' ' + text)
listtext = list(text)
for i in listtext[1:]: #trying to start for loop at index 1, i.e. skipping
the first index, does this work?
if i == 'a' or i == 'e' or i == 'i' or i == 'o' or i == 'u':
if listtext[i-1] == ' ': #line 7
i = i + 1
else:
listtext[i] = ''
i = i + 1
text = "".join(text_list)
print(text)
解决方案
使用 RegEx 可以轻松解决此问题。尝试这个:
import re
text = ' ' + input('Message: ')
text = re.sub(r'(?<! )[aeiouAEIOU]', '', text)[1:]
print(text)
例子:
Message: Aaaa. Foo bar baz. An apple.
A. F br bz. An appl.
推荐阅读
- web-scraping - 如何隐藏网站的连续点击率(刷新)
- javascript - 参数被重新分配
- android - 如何解决此 Logcat 错误
- r - Spark JDBC 连接到 SQL Server 经常超时
- ruby - 从 Packetbeat 解码 gzip 响应正文
- python - 这是什么意思?DeprecationWarning:调用已弃用的函数 get_sheet_by_name(使用 wb[sheetname])
- php - Find string which changes it position in URL
- c# - 为什么 Vector3 必须公开或序列化才能从另一个脚本设置它的值
- java - 我应该如何处理 OOP 中的基本功能?
- node.js - 使用对等依赖和本地(文件:../some-lib)依赖