我是Stack Overflow和Python的新手。我正在尝试制作一种翻译程序,我敢肯定有比我正在做的事情更简单的方法,但是嘿,这是学习的一部分。因此,基本上,用户输入字母,然后翻译并打印答案。但是我宁愿存储它而不是打印它,以便在有意义的情况下,我可以在最后完全打印答案。
`a = "b"
While True:
i = input()
if I_1 = a:
L_1="a"
if I_1 = b:
L_1 = "b"`
等。
因此,我希望每次将L_1
存储为L_1
,L_2
等,以便最后我可以说
`print(L_1 + L_2)`
,依此类推。
我知道我可能使用了错误的约定,但希望它足够清楚可以理解。 谢谢。
答案 0 :(得分:1)
可以那样做(通过编程生成变量),但通常被认为是非常糟糕的形式,因为它使得很难推断出哪些变量引用了程序中的内容。
请考虑使用dict
。像list
一样,它是一个容器,但是与list
不同的是,您可以使用 keys 访问其元素,尤其是字符串。这对您的用例非常有用,因为您可以将翻译的结果放在dict
中,并使用原始字符/单词/短语访问它们。>
您还需要一些方法来记录无法识别的输入并结束循环(因为您在while True
中使用了无限循环)。
最后,完成后,您将拥有一个list
。由于您可能想将其内容重新组合成一个句子,因此可以使用string.join
,它将list
的内容与string
的内容组合在一起(此处为''
使用,因此最终字符串中list
的每个元素之间将没有任何内容)
例如:
translation_mapping = {'you': '你',
'are': '是',
'human': '人类'}
result = []
while True:
input_string = input()
if input_string == '_END':
break
try:
result.append(translation_mapping[input_string])
except KeyError:
# input_string was not found in the translation mapping
print(f"I didn't understand {input_string}. Please try again.")
print(''.join(result))
输出:
>>> you
>>> are
>>> a
I didn't understand a. Please try again.
>>> human
>>> _END
你是人类
答案 1 :(得分:0)
您正在寻找数据结构。
如果用户仅输入字母,则列表就足够了并且可以完成工作。
您的程序有2个问题,我们必须解决。
1)错误的相等运算符。
您使用的是等于运算符,而不是==比较运算符。由于将变量的值设置为该值,因此导致每个条件都成立。
2)范围界定错误。
您的变量L_1和L_2仅作用于if / else条件运算符,而没有作用于函数本身。确保在循环之外声明变量,以便在循环结束后可以再次使用它们。
答案 2 :(得分:0)
修复一些Python代码(相等运算符等),并为循环添加退出条件(用户输入以0开头)。这不一定是处理用户输入的最佳方法,但是我想使它与原始代码相似。
您要创建一个空列表来存储结果,并在每个循环中append
对其进行保存。
output_data = []
while True:
i = input()
if i[0] == "a":
output_data.append("b")
if i[0] == "b":
output_data.append("a")
if i[0] == "0":
break
print(output_data)
答案 3 :(得分:0)
您可以借助列表来完成此操作,该列表是python内置数组,如数据结构。您可以每次将结果附加到它。您可以通过键入某个字符串或字符等来打破while循环。 同样,您需要更正运算符,而while循环(W为大写字母)。
最后打印它时,可以使用join返回一个字符串,该字符串中的序列元素已通过str分隔符进行了连接。有关更多信息,请访问:https://www.geeksforgeeks.org/join-function-python/
a="b"
b="a"
lis=[]
while True:
i = input()
if i == a:
lis.append("a")
if i == b:
lis.append("b")
if i=="exit":
break
print("".join(lis))
祝你好运!
答案 4 :(得分:0)
print('Enter the number of letters')
n = input()
word=[]
i=0;
while(i<n):
word.append(input())
i+=1