python - 代码不适用于用户输入 A 或 B 并交换到所有 A

标签 python

我创建了部分代码,用户在其中输入字母“A”或“B”。程序的目的是判断字母是否可以交换为全字母“A”,用户必须输入可能发生交换的大小。

例如,如果用户输入 AABB 并且交换大小为 3,则输出应为 BBAB,其中两个“A”变为“B”,一个“B”变为“A”。

目前我的代码似乎没有替换字母并在出现错误的地方交换它们。

我的代码如下:

row = input('Enter the row and the side (A/B): ')
swap = int(input('How many places can be swapped? '))

if row[0] == B and row[swap] == B:
  row[0] = replace('B' , 'A') 
  row[swap] = replace('B' , 'A') 
  print(row)

当前代码输出以下内容:

Enter the row and the side (A/B): BBAA
How many places can be swapped? 2
Traceback (most recent call last):
  File "program.py", line 4, in <module>
    if row[0] == B and row[swap] == B:
NameError: name 'B' is not defined

代码应该输出 AAAA。

感谢您的帮助。

最佳答案

问题:

  • 您的状况检查有误。 如果 row[0] == B 且 row[swap] == B:。这里 B 不是变量而是字符串文字。因此您应该使用'B'。经过这些更正后,代码也无法工作。

您可以使用maketranstranslate:

row = input('Enter the row and the side (A/B): ')
swap = int(input('How many places can be swapped? '))

table = row.maketrans('AB', 'BA')
s = ''

for i in range(swap): 
    s += row[i].translate(table)
row = s + row[swap:]

print(row)

关于python - 代码不适用于用户输入 A 或 B 并交换到所有 A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56503641/

相关文章:

python - 从文本文件中删除未知字符

python - 如何使用 strptime 将浮点/整数转换为日期?

python - Spectrum S3 访问被拒绝

java - 从java类调用python模块?

python - 智能处理具有多个索引的 Python 数组

python - 在 QWebEngineView 中获取 sslerrors 信号

python - x 具有类型函数,但调用 x 会出现类型错误 Python3

python - 如何在退出程序之前计算一定的秒数

python - 游戏错误 : 'pygame' has no attribute 'init'

python - 为什么 shutil.rmtree() 这么慢?