python-3.x - def 函数比较两个字符串
问题描述
我们需要定义一个比较两个字符串的函数,如果它们不同,我们想知道索引。问题是无论我们使用什么插入,我们总是得到-1,即使它们不一样。
def mutation_detector(seq1,seq2):
if DNAval(seq1) and DNAval(seq2) == True:
if len(seq1) == len(seq2):
for i in range(0, len(seq1)) and range(0, len(seq2)):
if seq1[i] != seq2[i]:
return(i)
else:
return(-1)
else:
return('Wrong input')
else:
return('Wrong input')
print(mutation_detector('ATCGGGTA','ATCGGCTA'))
解决方案
问题是,您在第一次运行 for 循环时返回 -1,因为立即输入 else 子句。将 else 子句与 for 循环本身一起使用。例如:
def compare_strings(seq1, seq2):
if len(seq1) == len(seq2):
for i in range(0, len(seq1)):
if seq1[i] != seq2[i]:
return i
else:
return -1
else:
return 'Wrong input'
(请注意,引发自定义异常可能比在这里返回“错误输入”更好......)
推荐阅读
- git - 将远程重置为github中的特定提交(由于文件大,无法重置本地并强制推送)
- macos - 完全禁用或关闭 macbook pro 上的触控栏
- sql - 获取插入 postgres 的最低可用列号
- python - 如何用python创建一个ldap测试服务器?
- mongodb - 以复杂的方式在 No-SQL MongoDB 中写下 $subtract
- javascript - 如何使用全局安装的 npm 包运行我的本地 Angular 项目?
- python - Discord Python - 找不到ffmpeg
- sql - 在 4 行之后对所有行进行分组并创建第 5 行分组行
- html - 如何设计这个编辑图标?
- postgresql - 准备 konga 数据库时创建与 Postgresql 的连接时出错