猫史档案馆


【萌新院+疯癫工作室】基本算法之——遍历

用户:纳米病毒纳米病毒查看:1 回复:1 评论:1 创建时间:2019-12-14T19:09:34


今天,我来讲解一个十分重要,必须会的算法——遍历。

 算法是什么?算法其实就是解决问题的方法(萌新不要被吓坏了)。

说到遍历,大家应该会想到这个center_image

对,这就是今天讲的重点,那么先来看看,以下是这积木的源代码:

for i in range(0,10):
    pass

其实,我们学的算法,再日常生活和学习中十分常见,只是我们没留意罢了。

如果你试试这段代码:

for i in range(0,10):
    print(i,end=' ')

输出结果是:

0 1 2 3 4 5 6 7 8 9

这说明这个代码让变量i依次设定为0,1,2,3,4,5,6,7,8,9(这种说法不太好,只是为了让人便于理解),然后再依次输出(“end=' '”这个代码只是在输出后不换行并空一格接着输出)。

如你所见,这就是遍历。

那么,遍历再生活与学习中有哪些用处?这可多了呢。比如说老师叫你说出24的因数有多少,你肯定是这样的:

24除以1余0,1是24的因数。

24除以2余0,2是24因数。

24除以3余0,3是24因数。

24除以4余0,4是24因数。

24除以5不余0,5不是24的因数。

......

这样子想直到你从1到24都算了一遍后才知道哪些数是24的因数。

其实刚才你那个过程就是一个遍历了,如果在Python中的就是这样:

for i in range(1,24+1):
    if 24 % i == 0:
        print(i,end= ' ')

(警告:range()函数的序列值是遍历一个数到一个数前,比如range(0,10)是返回0到9)

在举一个例子,输入两个数a和b,求解他们的最小公倍数。

最小公倍数的范围是哪里啊?那就是a和b中最大的值到a乘b,这也就是我们所需遍历的部分,然后在每次遍历的数值如果以a和b相除的余数都为0那么就输出那个数并退出循环就可以了:

a,b=input().split()
a,b=int(a),int(b)    #int()函数将括号内的参数转换为整数类型
for i in range(max(a,b),a*b+1):    #max()函数返回传递的所有参数中最大的值
    if i%a==0 and i%b==0:
        print(i)
        break    #break语法退出循环

类似的,遍历这种算法也可以解决求解素数,求解公因数等问题。

另外,for语法可以只遍历一串列表或字符串,比如

a=[1,2,3,4,5]
for i in a:
    print(i,end=' ')

输出:

1 2 3 4 5

还有:

for i in 'Helloworld':
    print(i,end='')

输出:

Helloworld

如何,神奇吧。

掌握了遍历这个技能后,就是打通了学习算法的第一道门,其实像回溯,分治,这些算法中几乎都有遍历的身影。

好了,本期就到这里了。

另外

萌新院QQ:586884452

疯癫工作室QQ:678996214

emotion_编程猫_加油


回复

上一页1 页 / 共 1下一页
xueicexueice

好难的感觉emotion_编程猫_搓头

点赞0


评论