#!/usr/bin/python3
import argparse
vokaler = "aouåeiyäöAOUÅEIYÄÖ"
konsonanter = "bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ"
def viskspraket(text):
"""Removes all vowels from the sentence"""
return "".join([x if x not in vokaler else "" for x in text])
def rovarspraket(text):
"""Consonants are doubled and "o" is put inbetween them"""
return "".join([x + "o" + x if x in konsonanter else x for x in text])
parser = argparse.ArgumentParser()
parser.add_argument("-r", help="rovarspraket", action="store_true")
parser.add_argument("-v", help="viskspraket", action="store_true")
args = parser.parse_args()
textFromTerminal = input()
print(textFromTerminal)
if args.r:
print(rovarspraket(textFromTerminal))
elif args.v:
print(viskspraket(textFromTerminal))
在我的作业中,练习的一部分是使用以下命令从bash终端执行此python脚本:
$ echo "The landlubbers are trying to sink us with their canons." |./translation.py -r
其中“ -r”是我在标题中提到的调用参数。我已经弄清了问题的这一部分,并从bash运行它。 但是问题的下一部分是,我应该从bash终端翻译已经翻译的字符串,例如“ viskspraket”,而无需复制和粘贴翻译后的字符串。
translation.py文件中包含更多功能,应该能够在所有功能之间自由转换而无需复制和粘贴,但是我认为两个功能足以说明问题。
因此,例如,-r -v或类似的名称应首先将字符串转换为“ rovarspraket”,然后将其转换为字符串,然后使用“ viskspraket”再次进行翻译。
由于总共有五个函数(文件中现在仅显示两个),所以使用类似以下内容:
parser.add_argument("-rv", help="rovarspraketToviskspraket", action="store_true")
elif args.rv:
print(viskspraket(rovarspraket(textFromTerminal))
对于所有可能的翻译,由于组合太多,因此实际上并不可行。所以我的问题是: 我将如何去做呢?一般来说,我对bash经验不足。我也为瑞典的函数名称表示歉意,但我还是希望这很清楚。