我做了一个计算机科学作业的程序。我发现了一个新的,非常陌生的功能,它似乎不会像预期的那样工作。你知道吗
我是新来这个论坛的。 顺便说一句,我也把它作为一种爱好,我来这里不仅仅是为了一个朋友
def reverse():
s3 = ''
for char in reversed(s3):
s3 = s3 + char
def match_char():
global s1
global s2
global s3
s1 = input('What is your first string? ')
s2 = input('What is your next string? ')
reverse(s2)
num_matches = 0
for i in range(len(s1)):
if s1[i] == s2[i]:
num_matches = num_matches + 1
return num_matches
在python中,字符串是不可变的。所以当你这么做的时候:
有些事情发生在
reverse
的内部,但是您传入的字符串是不变的。你知道吗要修复此问题,首先需要从函数中
return
:然后在调用
reverse
时在s2
上赋值:有很多其他的方法来改进你的代码,但这就是你的“意外”结果的解释。你知道吗
怎么样:
作为一个函数:
关于以下代码的更多想法:
它调用
reversed()
,这是一个生成器。所以你可以试试这个:除了另外两个非常有效的答案之外,我还要补充的是,您实际上并没有在reverse函数中接受任何参数,因此即使您正确地传递了一个字符串,也没有对它进行任何处理(并且没有返回roippi指出的任何内容)。你知道吗
必须是
相关问题 更多 >
编程相关推荐