关于人工智能:Python-循环的本质就是一段代码懒得重复写

50次阅读

共计 4024 个字符,预计需要花费 11 分钟才能阅读完成。

程序中的循环概念非常容易了解,一段类似的代码不想反复去写,而后让程序去实现这个操作就是循环。例如从 1 加到 100,如果你顺次去加会发现,代码又臭又长,最好的写法当然是让程序通过循环顺次去累加。

  1. for 循环
    for 循环能够将对象中元素进行遍历(也叫迭代)操作,每次遍历都能够对元素进行相应的解决,截止到本篇博客,可遍历(迭代)对象目前为列表类型。

for 循环的语法格局如下:

for item in my_list(可迭代对象):
    for 代码块

上述代码中的 item 就是每次循环失去的对象,即可迭代对象外面的每个值。

这里最重要的一个概念是可迭代对象(iterable object),英文你也须要记住,前面常常用到。

可迭代对象蕴含的类型十分多,例如有列表、元组、字典与汇合,除了列表以外其它的内容将在前面进行学习。

2.for 循环根本应用
学习列表之后,对于 for 循环你须要建设一个根本的概念就是 for 循环能够顺次获取到列表中的每一项,留神是顺次获取。

编写代码的时候与 if 语句一样要留神缩进。

接下来通过 for 循环打印列表中每一项。

my_list = ["apple","orange","banana","pear"]
for item in my_list:
    print(item)

for 循环语句中只有缩进统一,能够由多行代码形成,例如:

my_list = ["apple","orange","banana","pear"]
for item in my_list:
    print("输入一个水果")
    print(item)
  1. for 循环嵌套 if 判断语句
    for 循环外面能够是多段代码,那这样其实也是能够嵌套 if 语句的,具体写法能够参考:

    my_list = [1,2,3,4,5,6,7]
    for item in my_list:
     if item >3:
         print("该元素比 3 大")
         print("该元素是:",item)

    上述代码能够判断当列表中的元素大于 3 的时候,输入 if 语句中的内容,你能够尝试补全 else 语句。

  2. range 函数
    在 Python 中能够通过 range 函数生成一个等差序列,这个等差序列就是一个可迭代对象,如果应用 type 函数查看对象类型会发现 range 函数生成的对象类型是 range,具体代码如下:

    my_range = range(4)
    print(my_range)
    print(type(my_range))

    输入后果为:

    range(0, 4)
    <class 'range'>

    能够看到 range 函数生成的是一个 range 对象,上文中用到了 range 函数,语法格局为 range(4),通用的语法格局如下:

    range(start,stop,step)

    其中只有 stop 是必填项,step 默认值是 1,如果省略 start 默认示意从 0 到 stop-1。具体运行下述代码即可分明。

    my_range1 = range(4)
    for i in my_range1:
     print(i)
    
    print("#"*10)
    my_range2 = range(1,4)
    for i in my_range2:
     print(i)
    
    print("#"*10)
    my_range3 = range(1,6,2)
    for i in my_range3:
     print(i)

    输入后果如下,咱们都是应用 for 循环语句进行的输入,通过 list 函数也能够。

    0
    1
    2
    3
    ##########
    1
    2
    3
    ##########
    1
    3
    5

    range 函数在后续的编程中属于罕用函数,很多场景下都须要借助它生成一个等差序列,所以该函数请牢牢把握。所谓把握的意思就是当初你须要好好的打一打代码。

5.3 for 循环补充常识
5.3.1 for 循环嵌套
一个循环中的代码块嵌套另一个循环称为循环的嵌套,在编写循环嵌套代码的时候须要留神。

代码块的缩进肯定要注意,核查好代码块属于哪个 for 循环

解析来是一个经典案例,当年橡皮擦学习的时候就在这里废了很大力量,始终到期末考试也没弄明确,入门阶段这应该比拟难了解的程序了,通过 Python 输入一个九九乘法表。

for i in range(1,10):
    for j in range(1,10):
        print("%d * %d = %3d"%(i,j,i*j),end=" ")
    print(" ")

代码运行之后如下图所示:

这个程序蕴含了 for 循环,for 循环嵌套,格式化输入字符串,还有不同级别的缩进。
循环在执行的时候,你能够先这么了解,外层循环转 1 遍,内层循环跑 1 圈。

这句话的含意初学到这个阶段,很难了解,这是啥意思?很多教材可能会写流程图,通知你分支怎么走,怎么走。很吃力,在橡皮擦看来这是个顿悟的事件。

在上述代码中标记两条线。

外层循环就是说的最下面的循环,它循环一次,外面的循环,就是蕴含变量 j 的那个 for 循环,要循环 1 圈,就是都循环一遍。
那论断就进去了。

当 i = 1 的时候,j 从 1 始终变到 10,而后在输入一个 print(” “);
当 i=2 的时候,i[图片上传中 …(24213201_619e3ed16076e86655.png-7f393-1640950581543-0)]
还是要从 1 变到 10,而后在输入一个 print(” “);
当 i=3 的时候…,而后在输入一个 print(” “)
i=4 的时候,而后在输入一个 print(” “)
当 i=9 的时候,内层循环循环完最初一圈。所有的循环都运行结束,完结该程序。

特地阐明一下 print 函数输入的时候,默认会带一个 \n,之前的课程曾经学习了,该符号代表换行。如果想去掉 print 函数自带的换行符,须要应用 end 参数,即 print(“ 待输入内容 ”,end=” “)。

释怀,尽管我具体的说了一遍流程,能悟了的同学就地就悟了,看不懂还是看不懂,这个中央的确很难(难吗?),不过不必放心,随着写代码越来越多,缓缓的你就会了,不会写这个也不影响后续的学习,总之多写两遍就懂了。

5.3.2 break 终止循环
终止循环你就这么了解,当满足某个条件的时候,我不想循环了,这就是 break 的应用场景,当满足某个条件这必定用到的是 if 语句。

例如,当循环一个列表的时候,如果呈现一个大于 3 的数字,那终止循环,代码如下:

for i in range(1,10):
    if i > 3 :
        print("呈现大于 3 的数字,终止循环")
        break

5.3.3 continue 持续循环
continue 与 break 相似,都是当满足某个条件时,要做的事件,只不过程序碰到 continue 关键字,不是终止循环,而是进入下一次循环,以后循环不论还剩下什么工作,不做了。

for i in range(0,5):
    if i > 3 :
        continue
    print("以后数字为:",i)

上述代码中在 for 循环存在一个 if 判断,当 i>3 的时候,也就是列表中数字大于 3,间接进入下一次循环,这样导致一个事件就是在循环中发现比 3 大的数字之后,print 就不会执行了,所以运行代码会发现下述后果,只显示小于等于 3 的数字。

以后数字为:0
以后数字为:1
以后数字为:2
以后数字为:3

5.3.4 for … else 循环
for … else 循环是 Python 中一种特定的语法结构,大白话就是当 for 循环执行结束了就执行 else。很多时候大白话能了解了,你能用来形容分明这个是干啥,这个知识点其实曾经把握了,初学阶段没必要咬文嚼字的。

例如测试下述代码:

for i in range(0,5):
    if i > 3 :
        continue

    print("以后数字为:",i)
else:
    print("不论下面的 for 循环干了啥,我都要执行一次")

在这里其实有个知识点须要补充下,就是代码配对的问题,啥叫配对,if 和 else 就是一对,为什么会有这种说法呢,参见下述代码:

if 条件:
    pass
if 条件:
    pass
else:
    pass

pass 示意占位,在 Python 中是反对该关键字的,就是还没想分明这里写啥代码,先弄个单词放着占住地位。

下面的代码呈现了两个 if 和一个 else,肯定要留神,else 和最近的 if 是一对,最下面的 if 就是一个一般的 if。这种问题在代码嵌套的时候会更加有意思。

if 条件:
    pass
if 条件:
    if 条件:
        pass
    else:
        pass
else:
    pass

根据缩进关系,你要找好 if 与 else 哪个是一对显得十分重要了。肉眼看不出来就理论敲敲键盘。

综合刚学习的内容,当初你晓得如何对 for else 进行配对了吗?

5.4 while 循环
while 循环也是 Python 中的一种循环语法,不过这种循环很容易搞成死循环,就是始终循环上来到电脑解体,死循环有害处但也有它的利用场景,前面咱也会学习到。

while 循环的语法格局如下:

while 条件:
    代码块

格局中条件十分重要,这个条件运算之后须要判断虚实,为真(True)才会进入到 while 中的代码块运行程序。

5.4.1 while 循环的经典利用
while 循环除了语法结构与 for 循环有差别以外,很多中央基本一致,接下来实现一个通过 while 循环实现的经典案例 – 猜数字,这个勉强算是一个游戏。

# 最终的答案为 12,其实能够用随机数
answer = 12
# 用户猜的数字
guess = 0
# 条件为 判断 guess 不等于 answer
while guess!=answer:
    guess = int(input("请输出一个 1~100 之间的数字:"))
    if guess > answer:
        print("你的数字大了")
    elif guess < answer:
        print("你的数字小了")
    else:
        print("祝贺猜对,数字为 12")

该案例尽管小,然而整合了很多之前学过的常识,例如 input 获取用户输出,int 将字符串转换成整数,if…elif…else 语句等内容,越是简略的知识点在后续的课程中呈现越频繁,肯定要留神根底最重要。

5.4.2 while 其余阐明
while 循环的应用与 for 循环基本一致,很多时候你甚至能够看成是一回事。因为 break 与 continue 语句同样实用于 while 循环,这里不再做反复知识点的阐明,前面进入简单编码的时候,天然能够把握。

正文完
 0