开发者学堂课程【Python 开发基础入门:Python 入门必备 -while 循环和 for 循环】学习笔记,与课程紧密联系,让用户快速学习知识。
课程学习:https://developer.aliyun.com/learning/course/556/detail/7652
Python 入门必备-while 循环和 for 循环
目录:
一.程序控制
二.分支嵌套
三.循环—while 语句
四.循环—for 语句*
五.循环 continue 语句
六.循环 break 语句
七.循环 continue.break 语句
一.程序控制
ª关于程序控制一类的语句,尤其是分支控制,主要指向if语句。
ªif语句是编程中最常遇到的一类。
If语句存在最大的问题是能够变化无常,写法非常繁多。存在有时所表达的方法是不能够理解,但逻辑思维顺序是正确的。因为能够将其嵌套起来,同样也可以选择不嵌套。
ª若其他的技巧综合运用起来,则if语句可以表达的十分完美。这是解决问题时,所须要面临的问题。
ª因在练习中,这方面的问题是非常普遍的。
例如:如果...然后...否则...类似于这一类的问题:
1.那么分支语句则是非常常见的一类。对于这一类的方式练习,并非依据固定格式,因各种语法并非相通。
2.最大的问题在于Force,每种语言内部的false, conetion的部分这一部分的内容。
3.要找出哪些部分可以作为等效false,哪些作为等效true.
顺序:
按照先后顺序执行
例如:先洗手,再吃饭,再洗碗
分支:
根据不同的情况判断,条件满足执行某条件下的语句.
例如:先洗手,如果饭没有做好,玩游戏,如果饭做好了,就吃饭,如果饭都没有做叫外卖为一个循环:
条件满足就反复执行,不满足就不执行或不再执行
例如,先洗手,看饭好了没有,没有好,一会来看一次是否好了,一会儿来看一次,直到饭好了,才吃饭。
这里循环的条件是饭没有好,饭没有好,就循环的来看饭好了没有。
在此之前应当知道。在其左边或者右边的这个值,此值等效为true还是false。
这个语言在其他语言中并非等于false,但在phython语言中,其规则便在图表之中。
同样,其他语言中不一定都为false。所以不需要放在其他语言中。那么就要对其进行测试。
如下图所示:
对象/常量 |
值 |
“” |
假 |
“string” |
真 |
0 |
假 |
>=1 |
真 |
<=-1 |
真 |
()空元组 |
假 |
【】空列表 |
假 |
{}空字典 |
假 |
None |
假 |
对于下方部分总结应当牢记:空集合+空值+0
False等价布尔值,相当于bool(value)
空集合
空字符串
空字典
空列表
空元祖
None对象
0
同样结合与或非的运算,进行相关操作。
二.分支嵌套
举例 :嵌套结构,可以是分支、循环的嵌
score = 80
可以互相嵌套多层
if score<0
print("wrong)
else:
if score<0:
print(‘egg’)
elif score <= 100:
print(‘right’)
e
lse:
print(‘too big’)
练习:
ª 应用到一些关键性的场合内部,效率性有很高的要求时,应当评估每一种算法,所产生的代价。
ª要用到简单而且高效的方法。
简单在于:写出一个稳定的代码。在生产环境中,并不追求极致而求稳定。
ª所写代码能够长时间、无间断在生产环境中运行,这就是好代码。
当效率低的时候,是否能优化。
ª更稳定代表着代码更需要要求简单。因为简单,容易查错。如果写的复杂,错误就无法找出,隐含的bug就更多。
ª所以说简单往往是最好的,但未必会高效,若做到简单且美,这就是极致。
ª应当找到一种简单的方式,而且实现起来又比较高效。
ª写代码就必须先稳定,可用各种手段:解决、选择、评估,找到方法,并实现方式来解决这样一个问题。
顺序-分支-循环
输入2个数字,输出最大值
给定-一个不超过5位的正整数,判断其有几位
使用input函数
val = input(‘>>> ’)
val = int(val)
if val >= 1000: #fold
if val> =10000:
print(5)
else:
print(4)
else:
if val> =100:
print(3)
elif val >= 10
print(2)
else:
print(1)
拥有多重解法,目前阶段为以上最优解。
三.循环—while 语句
ªWhile语句中,while为条件。If条件block,Blog意思为语句块。当while的条件一旦成立,便可执行一次语句块内部的语句。
ª当条件一旦为真。进入循环体后,语句块内部的语句执行完需再次返回,判断条件是否为真。
ª若条件为真。继续进入语句块。若要退出循环。则当执行完语句块之后,再次返回进行判断。
ª当条件为假,即刻离开,并不在进行。
语法
while condition:
block
当条件满足即condition为True,进入循环体,执行block
举例:
flag=10 这个为标记。当这个标记变化或者。模仿某种条件时,应当做出一些抉择。
while flag:
print(flag)
当对其进行判断时。若循环体。没有任何问题。注意不需要多算,也不需要少算。注意边界问题。
flaq -= 1
执行结果是什么?为什么?
如果flag=-10可以吗?如何改造?
a =5
if a<8:
print(
‘
less 8
’)
elif a<6:
print(
‘
less 6
‘
)
else :
print(
‘
positive
’)
a = int(input(
‘
input a number
’
))
b = input(
‘
input a number:
’
)
b= int(b)
if a〉b:
pass
elif a
flag= -10
while flag:
print(flag)
flag
-=
1
四.循环—for 语句*
语法:
for element(元素) in iteratable(可迭代的):
意思为请给我使用for循环,在可迭代的对象内部进行迭代。
block ( block可以写多个语句,嵌套缩进)
当可迭代对象中有元素可以迭代,进入循环体, 执行block0 range函数。
下题的可迭代对象是一个集合。集合内部拥有大量东西。在此处称为元素。在内部,将各个元素拿出,对于顺序无需苛刻。
总而言之,for循环会将其内部全部拿出。
迭代是在做数据处理中非常重要的手段。很多计算需要通过迭代来进行操作。
举例:打印1~10
for in range(10):
执行结果是什么?为什么?
——对于i可采用任一方法
如果想倒序打印呢?
——[19]: for i in range(10,0,-1)
以此类推
介绍Range函数:
内嵌函数,十分容易操作。Phython打开即可使用。
ValueError: invalid literal for int() with base 10: ’1234556a'
In [10] : range?
Init signature: range(self,l,*args,
*
*kwargs)
Docstring:
(文档描述)
range(stop) ->range object ..range(start,stop[, step]) -> range object
Return an object that produces a sequence of integers from start (inclusive)to stop (exclusive) by step.range(i, j) produces i, i+1,i+2,..., j-1.start defaults to 0, and stop is omitted!
range(4) produces 0, 1,2,3.These are exactly the valid indices for a list of 4 elements.
When step is given,it specifies the increment (or decrement).
Type:
type
I
n
[11]: range(5)
O
ut[11]: range(0,5)
接下来for循环:
[
12] : for i in range(5)
print(i)
[
13] : for i in range(3
,
5)
print(i)
[
14] : for i in range(5
,
5)
print(i)
[
15] : for i in range(6
,
5
)
print(i)
一些函数若出现错误部分,可以进行一些调整提示。相当于range内部的对象一个也没有。
若为正确,则是一个可迭代的对象。这样内部就有元素。没有元素,若进行迭代则是无效。这就是原则。Range函数还有另外一种表达形式。拥有三个参数,也就是说步长。
接下来进行数学描述:
range( 5) => range(0,5)=>[0,5)
[
16] : for i in range(2
,
5
,
1
)
print(i)
[
17] : for i in range(2
,
5
,
2
)
print(i)
[
18] : for i in range(1
,5,
2
)
print(i)
Range函数返回的结果是函数range对象,文档中已清晰描述。
当一个参数拥有定义时,右边所指对象为返回。一旦调用,一定会出现返回状况,供使用。
返回的实际为一个可迭代的对象。可迭代对象放置在循环过程中in的后面,并在可迭代对象内部一一拿出。
For
i
in range (5):
print ( " welcome ' )|
五.循环 continue 语句
Continue为继续。在循环语句中。应当掌握,继续后面的内容。
在循环过程中中断,回到最初出发点。再次进行迭代判断。若判断条件为真,则继续进行。
若判断为假,则此次循环结束。
Ø中断当前循环的当次执行,继续下一次循环
举例:计算10以内的偶数(for循环)
f
or i in range(10)
If not i%2:
C
ontinue
Print(i)
还有其它的实现吗?
打印10以内的偶数
print (
“-
-
”)
fori in range(10) :
if i
%
2:
continu
e
print (i)
print(
“-
-
”)
for i in range(10) :
if i
%
2--0
print(i)
print(
“-
-
”)
for i in range(10) :
if not i&0x01:
print(i)
print ("--" )
for i in range(10) :
if
not
i&0x01
:
an
continue
print(i)
举例:计算10以内的偶数( for循环)
for i in range(0,10,2):
print(i)
for i in range(0,10):
if i &1:
continue
print(i)
六.循环 break 语句
Break语句与continue语句不一样。Continue指的是当前正在进行的这次循环进行中断。然后返回判断是否能够继续进行循环内部。是中断当前这一次循环。
Break语句为终止当前循环。使其循环结束。不管while循环或for循环。使整个循环体结束。
continue和break语句都是在循环,定义里面都写的是跟循环有关,并不和分支有关终止当前循环并非终止当前分支。它只影响分支。
说明影响距离最近的目标循环,说明循环可以嵌套,分支也可以嵌套。
终止当前循环
举例:计算1000以内的被7整除的前20个数( for循环)
count= 0
for i in range(0,1000,7):
print(i)
count += 1
if count >= 20:
七.循环 continue.break 语句
循环嵌套,continue 和 break 也只影响语句所在的那层循环。
continue 和 break 不是跳出语句块,所以if 和 break不是跳出if,而是终止if外的break 所在的循环。
总结:
continue 和 break 是循环的控制语句,只影响当前循环,包括 while、 for 循环,不影响分支。只影响最近的循环。
for i in range ( 5) :
for j in range ( 5):
print (i*j)
if i>j:
break
练习:
给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字。
解析:
给了一个正整数,但不超过五位,让其判断它的位数,现在是方法已经很多,也可以把刚才所说部分是拿过来直接用。
知道位数还不长,比如说现在给出12345,那么哪个是个位?这种问题是有一定的目的性的这样问。让你从不同角度来答题,是锻炼不同的思考问题的办法。
从12345,先从5开始打,54321,要打出这个里面12345,不要出12345,当然依次打出12345也不容易,这个题从各个段位打都不容易,所以需要思考一下。