python问题求解答。
def min(x):
least = x
for each in x:
if each < least:
least = each
return least
print(min('123456789'))
这是演示mix()实现过程的代码,有点不能理解,求大师帮忙解答,谢谢。 遍历列表,谁小返回谁 本帖最后由 Twilight6 于 2020-5-28 20:43 编辑
def min(x):
least = x# 取一个数进行起始值
for each in x:# 循环 x 字符串内的数字,依次与 least 的值进行比较
if each < least: # 如果发现有比 least 更小的值,就将更小的值赋值给 least
least = each
# 一直这样循环,直到for 循环结束,因为 least 每次一遇到比本身小的值就重新将小的值赋值给自己
return least# 所以返回的 least 是字符串中最小的值
print(min('123456789')) 传入一个字符串。
然后先取第一个字符赋值给least,遍历字符串,拿字符串中所有的数字跟第一个字符比较:
如果比第一个字符小,那就把each赋值给least,否则的话继续比较,循环字符串长度次数,然后返回这个least. 哇!
你和我QQ头像一样 试用数学归纳法证明:第 n 次循环后,least == x, x, ..., x 中的最小值。 {:7_125:} Twilight6 发表于 2020-5-28 20:42
x取的值应该字符串(“123456789”)里面的1对吧,for循环也是把这个字符串里面的值依次跟x作比较,
least=x,for循环的值等于each。each<least,依次应该是 1:1,2:1,3:1 .....each没有比least小的值啊,还是不太明白{:10_266:} zgj1992 发表于 2020-6-4 15:57
x取的值应该字符串(“123456789”)里面的1对吧,for循环也是把这个字符串里面的值依次跟x作比较 ...
each 就是从 least里面取的值把他取出来依次和 least 比较如果有更小的 就把值赋值给 each 继续比较下去
你说的没错啊,这个案例里面没有比1 小的 所以输出值就是1啊 Twilight6 发表于 2020-6-4 16:01
each 就是从 least里面取的值把他取出来依次和 least 比较如果有更小的 就把值赋值给 each 继续比较 ...
谢谢了,我消化下{:5_109:} Twilight6 发表于 2020-6-4 16:01
each 就是从 least里面取的值把他取出来依次和 least 比较如果有更小的 就把值赋值给 each 继续比较 ...
least的值什么来的,我理解的是least=x,least就是1了,那么each就没有比least小的了。 zgj1992 发表于 2020-6-4 18:09
least的值什么来的,我理解的是least=x,least就是1了,那么each就没有比least小的了。
噗 我上面那边打字了 不是从least 里面取值 是从 x 中取 其他地方没说错 Twilight6 发表于 2020-6-4 18:11
噗 我上面那边打字了 不是从least 里面取值 是从 x 中取 其他地方没说错
我有点笨,谢谢你了 zgj1992 发表于 2020-6-4 18:28
我有点笨,谢谢你了
不会 怎么能说自己笨呢~ 加油刚刚开始时候都是一个样的
页:
[1]