python的代码块使用什么控制类函数_Python之路-条件控制&循环语句&列表推导式&常用函数...

一、什么是条件控制语句

条件控制语句,也可以称之为判断语句,通过一条或多条的执行结果来决定接下来要执行的代码块。

二、if语句

if语句是用来进行判断的,最简答的if语句只有一个判断一个操作。

语法:

if 条件: 条件成立,执行代码块

如:

''''

if语句

if 条件表达式: 条件成立则执行

执行一下代码

'''

# i = 0

# print('---------if开始')

# if i < 5:#条件成立

# print('我比5大')

# print('---------if结束')

if-else

和其他语言一样,python中也提供了与if搭配使用的else语句,else表示否则。在没有通过if判断的时候,执行的另一个操作。

语法:

if 条件: 满足条件执行的代码块1 else: 没有满足if条件执行的代码块2

如:

'''

if 条件表达式:

要执行的代码块

else : 条件不成立的时候

要执行的代码块

'''

# i = 10

# if i < 5:

# print('我比5小') #条件成立

# else: #条件不成立的时候

# print('我比5大')

if-elif-else

一个if只能有一个else,但是可以拥有多个elif。

Python中没有switch-case,可以使用if-elif-else来代替switch-case

语法:

if 条件:

满足if条件执行的代码块1

elif 条件1:

满足条件1执行的代码块2

elif 条件2:

满足条件2执行的代码块3

else:

不满足以上条件执行的代码块4

if嵌套

If嵌套就是在if-elif-else结构中再嵌套另外一个if-elif-else结构。

语法:

if 条件:

满足if条件执行的代码块

elif 条件1:

if 条件1-1:

满足条件1-1执行的代码块

elif 条件1-2:

满足条件1-2执行的代码块

else:

都不满足执行的代码块

elif 条件2:

满足条件2执行的代码块

elif 条件3:

满足条件1执行的代码块

'''

一个if只能有一个else,但是可以拥有多个elif.

Python中没有switch-case,可以使用if-elif-else来代替switch-case

'''

'''

使用方法:

if 条件:

满足if条件执行的代码块1

elif 条件1:

满足条件1执行的代码块2

elif 条件2:

满足条件2执行的代码块3

else:

不满足以上条件执行的代码块4

'''

'''

if 嵌套 就是在if-elif-else结构中再嵌套另外一个if-elif-else结构

'''

# x = int(input('请输入第一个数:'))

# y = int(input('请输入第二个数:'))

# z = int(input('请输入第三个数:'))

# if x == y == z:

# print('三个数相等!')

# if x > y:

# if x > z :

# print('最大数为: %d'%x)

# else:

# print('最大数为: %d'%z)

# elif x > z :

# if y > z:

# print('最大数为:%d'%y)

# else:

# if y > z:

# print('最大数为:%d'%y)

# else:

# print('最大数为:%d'%z)

'''

猜拳游戏

random.randint(x,y) 返回x 到 y自检的随机数

'''

# import random

# user = input('请输入石头、剪刀、布:')#接受用户输入的内容

# cont = ['石头','剪刀','布']#初始化数据

# num = random.randint(0,3)#获取0-2之间的随机数

#

# if user == '石头':

# if cont[num] == '石头':

# print('用户输入的是%s,电脑输入的是%s,平局'%(user,cont[num]))

# elif cont[num] == '剪刀':

# print('用户输入的是%s,电脑输入的是%s,你赢了'%(user,cont[num]))

# elif cont[num] == '布':

# print('用户输入的是%s,电脑输入的是%s,电脑赢了'%(user,cont[num]))

# elif user == '剪刀':

# if cont[num] == '石头':

# print('用户输入的是%s,电脑输入的是%s,电脑赢了' % (user, cont[num]))

# elif cont[num] == '剪刀':

# print('用户输入的是%s,电脑输入的是%s,平局' % (user, cont[num]))

# elif cont[num] == '布':

# print('用户输入的是%s,电脑输入的是%s,你赢了' % (user, cont[num]))

# elif user == '布':

# if cont[num] == '石头':

# print('用户输入的是%s,电脑输入的是%s,你赢了' % (user, cont[num]))

# elif cont[num] == '剪刀':

# print('用户输入的是%s,电脑输入的是%s,电脑赢了' % (user, cont[num]))

# elif cont[num] == '布':

# print('用户输入的是%s,电脑输入的是%s,平局' % (user, cont[num]))

# else:

# print('您的输入有误,拜拜!')

'''

练习

'''

# score = int(input('请输入分数:'))

# if score >= 90:

# print('同学你好棒!你的成绩是A')

# elif 60 <= score <= 89:

# print('同学表现还不错!你的成绩是B')

# else :

# print('同学你要加油哦!')

三、循环语句

循环语句就是在符合条件的情况下。重复执行一个代码段。Python中的循环语句有while和for。

          

while循环

while是一个条件循环语句,与if一样,也有条件表达式。如果条件为真,while中的代码就会一直循环执行,直到循环条件不再为真才停止。

语法:

while 条件: 代码块

练习:用while计算1到100的和

'''

循环 while for

'''

'''

while 条件表达式: #当条件为true的时候进入循环

要执行的代码块 #执行完里面的代码块则回到条件表达式 进行条件判断

'''

# i = 1 #初始化变量

# while i < 6: #对初始化条件信息进行判断,判断成立则进入循环体

# print('I LOVE YOU') #执行完里面的代码块则回到条件表达式

# i+=1 #如果没有i增加 系统会不停的打印

# print(i)

'''

Python里面没有i++ 自增用i+=1

'''

'''

计算1到100的和

'''

# i = 1

# sum = 0

# while i <= 100:

# sum += i #sum = sum + i

# i+=1

# print(sum) #在while循环里面 输出每一个sum

# print(sum) #在while循环外面 只输出最后的值

while循环嵌套

if中可以再嵌套if,那么while中也可以嵌套while循环,从而实现一些特殊的效果。

语法:

while 条件1:

满足条件1执行代码块1

while 条件2:

满足条件1又满足条件2执行代码块2

......

练习:实现用while输出以下三角形

'''

while 循环嵌套

while 条件1:

满足条件1执行代码块1

满足条件2:

满足条件1又满足条件2执行代码块

'''

# i = 0

# while i < 5:

# print('这个是外循环的第%d遍'%i)

# m = 0

# while m < 5:

# print('这是里面循环的第%d遍'%m)

# m += 1

# i += 1

# print('_'*20)

# i = 0

# while i < 5: #控制行数

# m = 0

# while m <= i:

# print('*',end = '') #end = ' '表示print的结束符为空格 默认情况下是换行

# m += 1

# i += 1

# print()#每行输出完之后输出一个换行 print()默认换行结束

while循环使用else语句

while-else在条件语句为false时执行else语句块。

语法:

while 条件:

满足条件执行代码块

else:

不满足条件执行代码块

'''

while循环

while 条件:

条件成立时执行的代码块

else:

条件不成立时执行的代码块

'''

# a = 0

# while a < 5:

# print('爱你一万年')

# a+=1

# else: #当条件不成立时

# print(a)

# print('我是至尊宝')

让用户控制循环条件

在使用循环的时候,让用户控制循环的结束,我们在其中定义一个退出值,主要用户输入的不是这个值,就继续循环,如果用户输入了退出值,那么程序就停止执行。

'''

控制退出程序

'''

# while True:

# flag = input('你是否要退出程序(y/n):')

# print(flag)

# if flag == 'y':

# break

使用break退出循环

在循环语句中使用break的作用是,在循环体内遇到break则会跳出循环,终止循环,并且不论循环的条件是否为真,都不再继续循环下去。

如:

'''

使用break退出程序 不管条件是否为真 都退出程序

'''

# a = 0

# while a < 5:

# if a == 3:

# print('紫霞仙子说:别说话!吻我')

# break

# print('至尊宝:爱你一万年')

# a += 1

循环中使用continue

如果想要一种效果,退出当前循环,再继续执行下一次循环。就可以使用continue

如:

'''

break 退出整个循环 不管条件是否为真

continue跳出当前循环 直接执行下一次循环

'''

# a = 0

# while a <= 10:

# a += 1

# print('第%d圈开始'%a)

# print('好累哈')

# if a == 5:

# print('趁老师不在,后半圈没跑')

# print()

# continue

# print('第%d圈结束'%a)

# print()

注意:continue和break常用于while和for循环中。

for语句

for语句一般语法

for是Python中另外一个循环语句,提供了Python中最强大的循环结构,它可以循环遍历任何序列项目,如:一个列表或者一个字符串。(sequence可以是列表元组集合,如果是字典只能遍历keys,无法遍历values)

语法:

for in :

else:

如:

'''

for循环 Python中最强大的循环结构 不需要判断条件

他可以循环遍历任何序列项目,如一个列表或者一个字符串

for 变量 in 序列:

执行的代码块

'''

# list01 = ['joe','susan','jack','tom']

#遍历列表

# for i in list01:

# print(i)

#while遍历

# i = 0

# while i < len(list01):

# print(list01[i])

# i += 1

创建一个名为favorite_places的字典。在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的1〜3个地方. 朋友指出他们喜欢的一个地方(input)。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来。

# favorite_places = {'张三':['上海','北京','深圳'],

# '李四':['张家界','九寨沟','鼓浪屿']}

# name = input('请输入姓名:')

# for i in favorite_places:

# # print(i) #遍历字典输出key

# if name == i: #遍历字典获取key 然后通过key和输入的值判断

# print(favorite_places[name])

# favorite_places = {'张三':['上海','北京','深圳'],

# '李四':['张家界','九寨沟','鼓浪屿']}

# name = input('请输入姓名:')

# for i in favorite_places.values(): #只获取value

# print(i)

# if name == i: #遍历字典获取key 然后通过key和输入的值判断

# print(favorite_places.items()) #获取key value以列表的形式输出 key和value在一个元祖里面

# for k,v in favorite_places.items():

# print(k,v)#打印出key以及对应的value

在for循环中使用break和continue

如:

'''

for循环中使用break continue

'''

# list01 = ['joe','susan','jack','tom']

# for i in list01:

# if i == 'susan':

# # break

# continue

# print(i)

# list01 = ['joe','susan','jack','tom']

# for i in list01:

# if i == 'susan':

# # break

# # continue

# pass #表示后面什么都不用操作了 占位 规范

# print(i)

pass

pass语句的使用表示不希望任何代码或者命令的执行;

pass语句是一个空操作,在执行的时候不会产生任何反应;

pass语句常出现在if、while、for等各种判断或者循环语句中;

range()函数-简介

Python中range() 函数返回的是一个整数序列的对象,一般用在 for 循环中。

函数语法

range(start, stop[, step])

参数说明:

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

range()函数使用

如:

'''

99乘法表

1x1 = 1

1x2 = 2 2x2 = 4

1x3 = 3 2x3 = 6 3x3 = 9

'''

#补充知识点

# print(list(range(1,10))) #range 返回一个整数序列 左闭右开

# print(list(range(5)))

# print(list(range(0,10,2))) #2为步长

# 方法一

# for i in range(1,10):

# # print(i)

# for j in range(1,i + 1):

# print('%d x %d = %d'%(j,i,(j*i)),end = ' ')

# print( )#以换行结尾

#方法二

# i = 1

# while i < 10: #控制行数

# # print(i)#控制行

# j = 1

# while j <= i: #里面嵌套控制列

# print('%d x %d = %d' % (j,i,j*i),end = ' ')

# j+=1

# i+=1

# print()

'''

1-100求和

'''

#方法一

# i = 1

# sum = 0

# while i <= 100:

# sum += i

# i += 1

# print(sum)

#方法二

# sum = 0

# for i in range(1,101):

# sum += i

# print(i)

# print(sum)

'''

从键盘输入一个字符串,将小写字母全部转化为大写字母

将字符串以列表的形式输出(如果字符串包含整数,转化为整数)

'''

# str = input('请输入一个字符串:') #接受一个字符串dhsbhf1234

# list = [] #定义一个空列表

# for i in str: #遍历字符串

# # print(i)

# #判断是否为数字 是的话转化为int 并追加到列表

# if i.isdigit() == True: #isdigit() isdecimal() isnumeric()

# list.append(int(i))

# else:#不是数字则转化为大写 追加到list

# list.append((i.upper()))

# print(list)#输出列表

'''

随机输入8位以内的正整数,

1、求他是几位数

2、逆序打印出个位数字

'''

# num = input('请输入8位以内的正整数:')

# if num.isdecimal():#首先判断是否为数字

# if len(num) <= 8:

# print('这个数是%d位数'%len(num))

# print(num[::-1])#切片

# else:

# print('输入有误')

# else :

# print('你输入的不是数字,请重新输入!')

'''

一个球中n米(自己输入)高度自由落下,每次落地后反弹回到原来高度的一般

再次落下,求在第10次落地时共经过多少米?

'''

# h = 100

# sum = 0

# for i in range(1,11):

# #第一次触地

# if i == 1:

# sum += h

# else:

# h /= 2 #第二次触地是前一次的一半

# sum += h * 2 #再累加

# print(sum)

四、列表推导式

列表推导式:列表推导式(list comprehension)是利用其它列表创建新列表的一种方式,工作原理类似for循环,即可对得到的元素进行转换变形 ,其基本格式如下(可以有多个for语句)

[expr for value in collection if condition]expr可以使for循环的变量,也可以是表达式

集合推导式:集合推导式跟列表推导式非常相似,唯一区别在于用{}代替[]。其基本格式如下:

{ expr for value in collection if condition }

练习:

'''

输入一行字符,分别统计出其中英文字母、空格、数字和其他字符出现的个数

isalpha isdigit isspace

'''

# str = input('请输入字符:')

# zf = 0

# num = 0

# space = 0

# other = 0

# for i in str :

# if i.isdigit():

# num += 1

# elif i.isalpha():

# zf += 1

# elif i.isspace():

# space += 1

# else:

# other += 1

# print('当前数字的个数是:%d,当前字符的个数是:%d,当前空格的个数是:%d,当前其他个数是:%d' % (num,zf,space,other))

'''

找出名字长度大于4的名字,组成列表打印出来

过滤掉长度大于5的字符串列表,并将剩下的转化成大写字母

'''

names = ['Tom','Billy','Jefferson','Andrew','Wesley','Steven',

'Joe','Alice','Jill','Ana','Wendy','Jennifer','Sherry']

#方法一

# name = []

# for i in names:

# if len(i) > 4:

# name.append(i)

# print(name)

#列表推导式

# name = [i for i in names if len(i) > 4]

# print(name)

# name = [i.upper() for i in names if len(i) <= 5]

# print(name)

'''

求出矩阵对应元素的和

'''

# m = [[1,2,3],

# [4,5,6],

# [6,7,8]]

# n = [[2,2,2],

# [3,3,3],

# [4,4,4]]

# for i in range(3):

# for j in range(3):

# print(m[i][j] + n[i][j])

#列表推导式

# num = [m[i][j] + n[i][j] for i in range(3) for j in range(3)]

# print(num)

#

# num = [m[i][j] * n[i][j] for i in range(3) for j in range(3)]

# print(num)

'''

列表推导式

'''

#正常情况

# list = []

# for i in range(3,10):

# if i % 2 == 0:

# list.append(i)

# print(list)

#简写方式

# list = [i for i in range(3,10) if i % 2 == 0]

# print(list)

'''

字典推导

'''

# list = ['joe','susan','black','joe']

# dict = {k:v for k,v in enumerate(list)}

# print(dict)

# dict = {'name':'joe','age':'18'}

# print(list(dict.items()))

# for k,v in dict.items():

# print(k,v)

'''

嵌套列表推导式

'''

name = [['Tom','Billy','Jefferson','Andrew','joe'],

['Alice','Jill','Ana','Wendy','Eva']]

# print(names[0][1])

# list = []

# for i in range(0,2):

# for j in name[i]:

# list.append(j)

# print(list)

#嵌套推导式

# list = [j for i in range(0,2) for j in name[i] if len(j) > 4]

# print(list)

'''

打印输出所有的“水仙花数”

“水仙花数”是指依一个三位数,其各位数字立方和等于该数本身

'''

#利用for循环控制遍历100-999,每个数字分解出个位,十位,百位

#然后分别**3 然后相加 判断 是否等于本身

#例如:

# num = 153

#取百位

# print(num//100)

#取十位

# print(num%100//10)

#取个位

# print(num%100%10)

# for i in range(100,1000):

# x = i // 100

# y = i % 100 //10

# z = i % 100 % 10

# if i == x**3 + y**3 + z**3 :

# print(i)

'''

打印菱形

'''

# i = '*'

# j = '***'

# m = '*****'

# n = '*******'

# print(i.center(7))

# print(j.center(7))

#方法一

# for i in range(1,7,2):

# print(('*'*i).center(7))

# for j in range(7,0,-2):

# print(('*' * j).center(7))

#方法二

# for i in range(1,8,2):

# print(('*'*i).center(7))

# if i == 7:

# for j in range(5,0,-2):

# print(('*' * j).center(7))

'''

一个5位数 判断是否是回文数 即12321

'''

# num = input('请输入一个5位数:')

# if num[0] == num[4] and num[1] == num[3]:

# print('%s是回文数'%num)

# else:

# print('%s不是回文数'%num)

#推广

# num = input('请输入一个数字:')

# if num == num[::-1]:

# print('%s是回文数'%num)

# else:

# print('%s不是回文数'%num)

'''

求一个3*3矩阵对角线元素之和

'''

# m = [[1,2,3],

# [4,5,6],

# [7,8,9]]

# x = 0

# y = 0

# for i in range(3):

# x += m[i][i]

# y += m[i][2-i]

# print(x)

# print(y)

五、内置函数

内置函数(可通过dir(__builtins__)查询)

下面列出的是常用的,红色标注的是使用频率更高的

练习:

'''

有四个数字:1、2、3、4能组成多少个互不相同并且没有重复数字的三位数?各是多少?

'''

# for x in range(1,5):

# for y in range(1,5):

# for z in range(1,5):

# if x != y and x != z and y != z:

# print(x * 100 + y * 10 + z)

# num = [x * 100 + y * 10 + z for x in range(1,5) for y in range(1,5) for z in range(1,5) if x != y and x != z and y != z]

# print(num)

'''

将列表用for循环添加到另外一个字典中

'''

# names = ['Tom','Billy','Joe','Andrew','Wesley','Steven','Alice','Eva']

# print(list(enumerate(names)))

# name = {k:v for k,v in enumerate(names)}

# print(name)

'''

设置一组账号和密码不少于两个

通过输入账号和密码,如果输入正确则显示登录成功

若账号或密码输入错误则显示登录失败

对多可以输入三次

'''

# user = {'joe':'123456','jack':'6543321','black':'455789'}

#

# for i in range(3):

# name = input('请输入您的用户名:')

# pwd = input('请输入您的密码:')

# if name in user:

# if pwd == user[name]:

# print('登录成功!')

# break

# else:

# if i == 2:

# print('您的账号已经冻结')

# break

# print('您的密码有误!')

# else:

# if i == 2:

# print('您的账号已经while冻结')

# break

# print('您输入的账号有误!')

'''

求阶乘 用while 和 for 分别实现

'''

# num = int(input('请输入你要计算的数字:'))

# i = 1

# det = 1

# while i <= num :

# det *= i

# i += 1

# print(det)

# print('数字%d:的阶乘是%d:' % (num,det))

# num = int(input('请输入你要计算的数字:'))

# det = 1

# for i in range(1,num + 1):

# det *= i

# print(det)

'''

冒泡排序

'''

list01 = [2,6,4,9,3,10]

# for i in range(len(list01)):

# for j in range(1,len(list01) - i):

# if list01[j] > list01[j-1]:

# list01[j],list01[j-1] = list01[j-1],list01[j]

# print(list01)

# for i in range(len(list01)):

# for j in range(1,len(list01) - i):

# if list01[j] < list01[j-1]:

# list01[j],list01[j-1] = list01[j-1],list01[j]

# print(list01)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值