[从零开始学Python]2.分支和循环

二、分支和循环

​ 在学习分支、循环等内容之前,我们要先清楚Python代码的流程控制,流程控制:对计算机代码执行顺序的管理。流程分类:1.顺序结构;2.分支选择结构;3.循环结构。

1.分支选择

1.单项分支

​ 如果学习过其他语言,那么对于if 都有过一定程度的了解了,例如c语言中

int a = 1;
if(a>=0)
{
	print('a是正数');
}

​ 而Python中,是依靠缩进去决定代码所属的代码块,本段代码的前两个输出是归if判断的,而第三个输出是与if无关的

age = 30
if age>=18:
    print('your age is:',age)
    print('adult')
print('ok')

​ 之前学习中容易忽略掉的内容就是if其实是有返回值的,若判断满足if的条件,那么其实是会返回true的;因此,我们也经常能看到if被嵌套到其他语句中使用。

2.双项分支

3.多项分支

age = 20
if age>=6:
    print('teenager')
elif age>=18:
    print('adult')
else:
    print('kid')

当有多项分支时,只有符合条件的首个分支会被执行,当有一个分支被执行时,与其平行的所有分支就被忽略掉了。

2.循环结构

1.while循环

# 循环输出 1-10 的数
i = 1
while i<=10:
    print(i)
    i = i + 1
    # i += 1

死循环的应用

# 死循环的应用
while True:
    k = input('请输入一个值:')
    print('输入的内容是:',k)
    if k == 'q':
        break # 跳出循环

2.for … in 循环

遍历字符串

# 遍历字符串
for i in 'abcde':
    print(i)

遍历列表

# 遍历列表:例:1-10求和
sum = 0
for x in [1,2,3,4,5,6,7,8,9,10]:
    sum=sum+x
print(sum)

# 若想要获取下标
for i,n in enumerate(['a','b','c']):
    print('第{}个元素:{}'.format(i,n))

遍历元组

# 遍历元组
for i in (10,40,80):
    print(i)

遍历set{}结构

# 遍历set
for i in {10,40,80}:
    print(i)

遍历字典:

# 遍历字典
a = {'name':'lsw','age':24,'sex':'male'}
for i in a:
    print(i,":",a[i])
for k,v in a.items():
    print(k,v)

注意:字典.items() 功能是

a = {'name':'lsw','age':24,'sex':'male'}
print(a.items())
# 结果:
dict_items([('name', 'lsw'), ('age', 24), ('sex', 'male')])

遍历嵌套的数据结构

# 遍历嵌套的数据结构
b = [('name','lsw'),('age','24'),('sex','male')]
for k,v in b:
    print(k,v)

3.range()函数

# 循环生成0-9的值:
for i in range(10):
    print(i,end=' ')
print(' ')
print('-'*30)
# 循环输出2-6的值:
for i in range(2,7):
    print(i,end=' ')
print(' ')
print('-'*30)
# 循环输出0-50的值,步进为5
for i in range(0,50,5):
    print(i,end=' ')
print(' ')
print('-'*30)
# 循环输出10-1的值
for i in range(10,0,-1):
    print(i,end=' ')
print(' ')
print('-'*30)

range函数的作用之帮助我们快速生成一连串的序列

# 用range快速生成一个list列表
print(type(range(10)))
# 由此可知range并非list结构,而是一个独立的结构
print(list(range(10)))

4.break和continue语句以及循环中的else子句

​ 这个的用法与c语言类似,break通常用于终止当前的代码段…

3.实例

99乘法表快速生成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z72dIKQd-1579702822317)(C:Users刘生伟AppDataRoamingTypora ypora-user-imagesimage-20200122175815105.png)]

分析:对于这种问题我们应该去注意行与列的关系,第一个乘数是1-9,可以放置到外层循环i,第二个乘数每行从1-i内层 循环

for i in range(1,10):
    for j in range(1,i+1):
        print('{}*{}={:<2}'.format(i,j,i*j),end=' ')
    print('')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tsXr3HGz-1579702822318)(C:Users刘生伟AppDataRoamingTypora ypora-user-imagesimage-20200122204746951.png)]

分析:外层i 第一个乘数9-1,内层j第二个乘数1-i

for i in range(9,0,-1):
    for j in range(1,i+1):
        print('{}*{}={:<2}'.format(i,j,i*j), end=' ')
    print('')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JfCDxzjP-1579702822320)(C:Users刘生伟AppDataRoamingTypora ypora-user-imagesimage-20200122204832964.png)]

分析:由于要空出来,所以我们应该内外层都给他填满,还是按以前一样找两个乘数哪个适合做外层/内层循环

for i in range(1,10):
    for j in range(1,10):
        if j>=i :
            print('{}*{}={:>2}'.format(i,j,i*j),end=' ')
        else:
            print('{} {} {:<2}'.format(' ',' ',' '),end=' ')
    print('')	

range(1,10):
for j in range(1,10):
if j>=i :
print(’{}{}={:>2}’.format(i,j,ij),end=’ ‘)
else:
print(’{} {} {:<2}’.format(’ ‘,’ ‘,’ ‘),end=’ ‘)
print(’’)


原文地址:https://www.cnblogs.com/hzshisan/p/12571092.html