Python 3.x 从For循环中生成While循环
我制作了这个piec代码,它可以很好地用于以下方面: 编写代码以检查通过input()给定的字符串是否只包含有效字符,但在到达一个无效字符时停止。因此,如果字符串有效,则打印valid字符串。如果字符串无效,则打印无效的字符串,直到该点为止 但是现在我必须使用while循环来实现这个功能,但我无法完成,你们能帮我或向我解释如何将代码转换为while循环,同时保持完全相同的功能吗Python 3.x 从For循环中生成While循环,python-3.x,for-loop,while-loop,Python 3.x,For Loop,While Loop,我制作了这个piec代码,它可以很好地用于以下方面: 编写代码以检查通过input()给定的字符串是否只包含有效字符,但在到达一个无效字符时停止。因此,如果字符串有效,则打印valid字符串。如果字符串无效,则打印无效的字符串,直到该点为止 但是现在我必须使用while循环来实现这个功能,但我无法完成,你们能帮我或向我解释如何将代码转换为while循环,同时保持完全相同的功能吗 file = input() invalid_letter_found = False correct_letter
file = input()
invalid_letter_found = False
correct_letters = []
for current_letter in file:
if current_letter in ['A', 'T', 'G', 'C']:
correct_letters.append(current_letter)
continue
elif current_letter != ['A', 'T', 'G', 'C']:
invalid_letter_found = True
break
if invalid_letter_found == True:
print(f'invalid {"".join(correct_letters)}')
else:
print(f'valid {"".join(correct_letters)}')
该程序将在查询中给出与上述程序完全相同的输出
file=input()
n=len(文件)
lst=[]
对于文件中的alp:#这会将字符串转换为列表,如果不想使用for循环,可以使用任何其他方法
lst.append(alp)#转换到此结束
无效的字母\u找到=错误
正确的字母=[]
i=0
而i
尽管您需要使用while循环的唯一原因是如果这是一个家庭作业问题-这里有一个正确方向的提示:
当前字母=文件[0]
file=文件[1:]
while len(文件):
Python的“for”和“while”语句都用于构造循环。“for”语句按任何序列(列表或字符串)中的项在序列中出现的顺序对其进行迭代。“while”语句通常涉及一个或多个变量,这些变量在循环开始或进入循环之前初始化,然后在循环中的某个位置更新。要解决您的问题,请参见1。确定迭代列表2的方法。查看while True循环的构造以及如何最好地结束循环感谢您的建议,现在我了解了如何使其工作,是的,您是对的,这确实是一个家庭作业问题……除非您在while循环操作中减小文件大小,否则此退出标准不会生效work@itprorh66没错,这就是为什么我包括了字符串切片操作current_letter=file[0]
来获取第一个字母,以及file=file[1:][/code>来将字符串大小减小一。基于最初的代码,我认为很明显这些都在while循环中,因为这就是您使用当前字母的地方。。。但这是一个公平的观点。
file = input()
n=len(file)
lst=[]
for alp in file: # this will convert the string to list, you can use any other method if you don't want for loop
lst.append(alp) #Here the conversion ends
invalid_letter_found = False
correct_letters = []
i= 0
while i < n:
if lst[i] in ["A", "T", "G", "C"]:
correct_letters.append(lst[i])
i += 1
continue
elif lst[i] != ["A", "T", "G", "C"]:
invalid_letter_found = True
break
if invalid_letter_found == True:
print(f'invalid {"".join(correct_letters)}')
else:
print(f'valid {"".join(correct_letters)}')