我有一个字符串,它是 "java is fun for sure"
,我想打印
所以结果会像 ".j.v. .s. .f.n. .f.r. .s.r"
我已经试过了
s = str(input())
s.translate({ord(i): None for i in 'aeiou '})
结果是 "jvsfnfrsr"
但我不知道如何打印“.”在字母之前。
一些帮助会很棒!我确定这是一个非常简单的问题,但由于某种原因我无法想出它!
提前谢谢! :)
答案 0 :(得分:1)
这个呢?它也保留了大写字母。
vowels = 'aeiouAEIOU'
tmp = ''.join([char for char in str1 if char not in vowels])
final = ''.join(['.'+char for char in tmp])
答案 1 :(得分:1)
您可以使用 maketrans 的 3 参数版本来创建所需的翻译词典。使用 the sep
param of print(..)
放置 .
:
s = "java is fun for sure"
s1 = s.translate(str.maketrans("", "", "aeiou")) # AEIOU are kept as is
print("", *s.translate(str.maketrans("", "", "aeiou")), sep=".")
或简而言之:
print("",*"java is fun for sure".translate(str.maketrans("", "", "aeiou")),sep=".")
string-var 之前的 * 将字符串分解为字母:
print(*"abc", sep = "#") # == print("a","b","c", sep = "#")
输出:
.j.v. .s. .f.n. .f.r. .s.r
如果你需要结果字符串,你可以使用 str.join():
s2 = '.' + '.'.join(s1)
答案 2 :(得分:1)
import re
s = str(input())
s = s.translate({ord(i): None for i in 'aeiouAEIOU'})
print(re.sub('([^\s])', r'.\1', s))
输入:"java is fun for sure"
输出:".j.v .s .f.n .f.r .s.r"
使用正则表达式的解决方案