4:python第二章:语法基础3(适合小白观看)

目录

4.1for循环

4.1.1基本的for循环

​编辑

4.1.2for循环的嵌套

4.2while循环

4.2.1基本的while循环

本章节将为大家介绍 Python 循环语句的使用。

Python 中的循环语句有 for 和 while。

所以我将会分成两个部分介绍,一个是for循环语句一个是while循环语句。

4.1for循环

for循环的含义,就是循环整个列表,范围,字符串。

4.1.1基本的for循环

基本for循环的结构是:

for i in <列表名称,范围,字符串>(a):(注意冒号非常重要,自己在写的时候不要忘记!!)
           命令(b)

else:

         命令(c)

首先来介绍以下for循环的结构,像前文所说for循环的作用是循环整个列表,范围,字符串。循环经历列表,范围,字符串的时候执行命令b。接着循环完成之后执行命令c。(注意这个i的话是可以更换的,因为他是一个循环的载体)

也许这样说比较抽象,我们可以举一个例子来讲述。

fruit=["apple","banana","orange","pear","blueberry","waxberry"]
for i in fruit:
    print(i)

在这个代码中,首先定义了fruit这个列表是啥东西,(列表也是python中的数据类型,当然在之后会写道这个东西)接着使用for循环,来遍历了这个列表。来看一下打印出来是啥:

看到的结果是整个列表打印出来了,在这个代码中我使用了载体i,运用for循环遍历一个东西的特性,将in后面的范围,列表,字符串的内容一个接着一个打印出来。这个就是for循环的基本解释,你可以理解成,将一个一个内容搬下来然后在到命令b,执行命令b。

在上面这个代码中,是一个列表,所以我将fruit这个列表中的内容搬了下来,然后执行命令b,将其打印出来。

那之前是关于列表的循环,那之后先来讲一下关于字符串的for循环

for i in "fruit":
    print(i)

大家应该非常的清楚,在python中有引号的数据类型在数字2,也就是python第二章:语法基础1的时候就应该讲述过这个东西。这个类型的话就是我们熟悉的字符串。

结果可以先猜一下

也就是说在这个for循环中将fruit这个单词的字母给搬下来,并且使用了print命令给打印出来了。

在讲述for循环与范围之前,首先需要了解一个函数,range函数,range在英文中是指范围的含义

来看一下基本的代码,就知道range的使用方式了。

for i in range(1,10):
    print(i)

这个代码的意思就是在1到10的范围中进行for循环,也就是说我范围中的数字就是我要搬下来的途径。其实最重要的在这里还是这个范围的问题,1到10前面后面到底包不包括。这个与当时的切牌是一样的,运用同样的口诀就行了,前包后不包,啥意思呢?就是我前面的数字是包括的,但是我范围后面的数字便不包括了。

所以打印出来的便是

这个就是打印出来的结果。他遵守的是前包后不包的遵旨,但是像切片一样还是有一些其他情况存在。

for i in range(10):
    print(i)

在这里没有前面的数字了,也就是说范围少了前面的数字,那从何开始呢,这里是从0开始,然后结束的话同样遵循前包后不包的宗旨,也就是说最后打印出来的是0--9这几个数字(包括0,同样也包括9)

最后就是步长,与切片完全相同,不懂的可以看看那篇文章。在这里的代码是怎样子写的。

for i in range(1,10,2):
    print(i)

这个结果就是这样子:

在一开是中的结构中有else部分,但是还没有例子

for i in range(1,10,2):
    print(i)
else:
    print("finished")

这个代码的原理是首先使用for循环,将1--9(闭区间)步长是2这几个数字打印出来,完成之后将会打印出来finished。

这个else与if条件语句中的else是一个意思,就是上面的循环完,或者说不符合我上面的条件,那我就进行else的进程。

4.1.2for循环的嵌套

for循环的嵌套的基本结构:

for i in <range, string>

         for i in <range,string>

                    命令

else:

              命令

for循环嵌套的基本结构是这样子的

然后我们同样在例子中感受以下for循环的嵌套,让我们使用for循环来写以下关于1,2,3这三个数字能够搞出多少个三位数,(数字不能重复,就是不能出现111,112这样的数字)并且分别是啥这个例子。

首先1,2,3三位数,如果不用代码来做的话,我们会先假定一个百位的数字,比如说先假定1为百位上的数字,然后有123,132。然后改2为百位,213,231。接着就是定3为百位上的数字,321,312这样子,那在代码中也是一样,使用for循环将其一个一个数字搬下来

for i in range(1,4):
    for x in range(1,4):
        for y in range(1,4):

在这个就是说我i取1 的时候x可以取1,y取1。接着i取1的时候,x可以取2,y取2,这个样子,也就是说,到命令行这里的时候我的变量有的数字就是i--1,2,3;x--1,2,3;y--1,2,3。

然后才可以开始进行对于他们的百位还是十位还是个位进行确定。

for i in range(1,4):
    for x in range(1,4):
        for y in range(1,4):
            a=i*100+x*10+y
            print(a)

这个就是关于基本的代码,a确定了i是百位,x是十位,y是个位这个样子,并且i的123可以分别的最为百位出现,但是会出现一个问题,题目规定的是不能出现111这样的情况,也就是不饿能重复,按照我们现在的逻辑的话,会出现这样子的情况,现在打印出来是这样的

之后还有就不把图搞过来了

那既然出现了问题,那就说明还没有完成我们需要的东西,那这样的话怎么去修改呢?在这里其实我们已经完成了所有的三位数的打印,其实加一个条件就是我这个三位数不能一样,而且加上一个关于计数的内容其实就可以。加一个条件,这个就是条件语句if 所以写一个if就好了

count=0
for i in range(1,4):
    for x in range(1,4):
        for y in range(1,4):
            if i!=y and y!=x and x!= i:
                a=i*100+y*10+x
                count+=1
                print(a)
print(count)

这个就是完成的代码,count一开始是零,就是关于我有几个数字的意思。if这里表示的便是我需要满足一个条件就是关于i不等于y y不等于x x不等于i这样子的情况才能进入这个循环,才能最后打印出来,这个count+=1之后也会重点讲到,今天先出现以下,这个的意思就是count(新的值)=count(老的值)+1,这个样子,也就是说我的出现了第一个数字,满足了if的条件,进入了这个条件语句,然后count(老的)=0+1 这样产生了新的count值,之后循环就好。

这个就是我需要的答案。

但是依旧没有接近我想要的解释,因为最后一个print为啥不需要缩进,这个问题非常的重要,因为不同的缩进所打印出来的东西是不一样的,print在外面表示我的for循环已经结束,作为一个计数的变量,当然需要在所有的循环完成之后才能打印。

4.2while循环

whlie循环与for循环一样,都属于循环语句,基本的作用差不多但是结构会发生变化,这两个还是有有一定的区别的。

4.2.1基本的while循环

基本while循环的结构

如果使用 while 循环,只要条件为真,我们就可以执行一组语句。

whlie 条件:

            命令

else:

           命令

这样子的一个格式,然后给一个关于例子来更加好的了解这个东西

i = 1
while i < 9:
  print(i)
  i += 1

这里来看一下这个代码,我来解释一下,(注意分析代码需要从上往下去看)如果i=1的情况下,进入while循环,首先判断一下i是否小于9,是的话进入代码块,然后首先要打印出来i那么第一个输出的就是1,接着又来了刚才讲到的那个结构,i(新的)=i(老的)+1.这样i的值从1变成2,接着就是whlie循环的能力了,因为有些初学者会认为while与if好像啊,都是判断一下对不对。这个就错了,while循环的主要能力就是循环,在不满足while的条件之前他会一直循环直到结束。

所以第二个打印出来就是2,3这样子下去

然后这里有一个非常重要的知识点,就是关于这个i+=1这个能不能不写。答案是不行,因为在开始介绍的时候就说过,for循环与while循环同是循环语句,但是这两个东西有不一样,while循环没有像for循环有这个能力自动将范围中的数字给一一搬下来,所以我们需要手动改变数字的值。不然的话一直都是1,一直在循环,计算机会一直运作,陷入了一个死循环。

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值