如何在python 3.3中显示我的句子?

时间:2014-04-18 14:41:45

标签: python python-3.x python-3.3

如何在我的程序中显示句子..

如果我有这句话:“我踢足球”,我想用“e”代替字母“o”....

我使用以下代码执行此操作并且该代码显示它在句子上执行的调整,例如:“feetball”但不显示例如句子: “我玩脚球”  如何在编辑后显示完整的句子

我使用的代码:

f="ذهب الولد إلى الشاطىء و تحدث بشكل هادىء و كان يسيير في بطئ و يمسك في يده شيئ"
x=f.split()

for s in x:
  if s.endswith("ئ") and len(s)==3 :
    print(s.replace("ئ","ء"))
  if s.endswith("ىء") and len(s)>=5:
    print(s.replace("ىء","ئ"))

2 个答案:

答案 0 :(得分:1)

str.replace不会更改原始字符串,而是返回一个新字符串;字符串在Python中是不可变的。另外,您实际上并未更改原始字符串x,因此您无法获得完整的句子。尝试使用enumerate

for i, s in enumerate(x):
    if s.endswith("ئ") and len(s) == 3:
        x[i] = s.replace("ئ","ء")
    if s.endswith("ىء") and len(s) >= 5:
        x[i] = s.replace("ىء","ئ")

现在整个句子都在x

print(' '.join(x))

这允许您定义可应用于同一个单词的多个替换,但允许您在结尾处打印整个修改过的句子。

答案 1 :(得分:1)

for s in x:
  if s.endswith("ئ") and len(s)==3 :
    print(s.replace("ئ","ء"))
  if s.endswith("ىء") and len(s)>=5:
    print(s.replace("ىء","ئ"))

您似乎正在根据特定条件将字符串拆分为单词并对每个单词执行替换。但是,如果没有为单词定义替换,则永远不会打印它。您需要一个案例来表示您不会替换任何字符的字词:

for s in x:
  if s.endswith("ئ") and len(s)==3 :
    print(s.replace("ئ","ء"))
  elif s.endswith("ىء") and len(s)>=5:
    print(s.replace("ىء","ئ"))
  else:
    print(s)

如果要将所有输出放在一行上,可以构建已处理单词的列表,使用空格重新连接它们,然后打印结果:

l = []
for s in x:
  if s.endswith("ئ") and len(s)==3 :
    l.append(s.replace("ئ","ء"))
  elif s.endswith("ىء") and len(s)>=5:
    l.append(s.replace("ىء","ئ"))
  else:
    l.append(s)
print(' '.join(l))