# if语句练习
age = 21
if age>18:#if和age之间必须要有一个空格,语句后面一定要有一个冒号
print(“已经是成年人了”)
print(“应该思考成年人的责任了”)
print(“必须思考生命的意义了”)
print(“尽早确立自己感兴趣的方面”)
已经是成年人了
应该思考成年人的责任了
必须思考生命的意义了
尽早确立自己感兴趣的方面
if语句练习
age = 17
if age>18:#if和age之间必须要有一个空格,语句后面一定要有一个冒号
print(“已经是成年人了”)
print(“应该思考成年人的责任了”)
print(“必须思考生命的意义了”)
print(“尽早确立自己感兴趣的方面”)
尽早确立自己感兴趣的方面
双向分支练习
gender = input(“请输入您的性别:”)
print(“您的性别是:{}”.format(gender))
if gender ==“nan”:
print(“要有男人应该有的责任感”)
print(“要有正确的合理的追求”)
else:
print(“做个知性优雅的人”)
print(“做一个自由而全面发展的人”)
请输入您的性别:nan
您的性别是:nan
要有男人应该有的责任感
要有正确的合理的追求
做一个自由而全面发展的人
学生成绩
score = input(“请输入你的成绩:”)
print(“你的成绩是:{}”.format(score))
score = int(score)#这是是我们输入的分数转化为字符串的一个函数
if score >=90:
print(“A”)#ABCD必须要做英文状态下的双引号下,这才表示是字符串
if score >=80 and score <90:
print(“B”)
if score >=70 and score <80:
print(“C”)
if score >=60 and score <70:
print(“D”)
if score<60:
print(“革命尚未成功,同志任需努力”)
请输入你的成绩:85
你的成绩是:85
B
多路分支
score = input(“请输入你的成绩:”)
print(“你的成绩是:{}”.format(score))
score = int(score)#这是是我们输入的分数转化为字符串的一个函数
if score >=90:
print(“A”)#ABCD必须要做英文状态下的双引号下,这才表示是字符串
elif score >=80:
print(“B”)
elif score >=70:
print(“C”)
elif score >=60:
print(“D”)
else:
print(“革命尚未成功,同志任需努力”)
请输入你的成绩:98
你的成绩是:98
A
循环语句for循环
打印学生列表姓名
for name in [“xixi”,“jingjing”,“huahua”]:#表示把列表里的姓名都打印出来
print(name)
xixi
jingjing
huahua
打印学生列表姓名
如果是jingjing打印好久不见啊
for name in [“xixi”,“jingjing”,“huahua”]:#表示把列表里的姓名都打印出来
print(name)
if name == “jingjing”:#注意这里不是一个等号,而是两个等号表示判断
print(“好久不见啊{}”.format(name))
else:
print(“同学你好”)
xixi
同学你好
jingjing
好久不见啊jingjing
huahua
同学你好
range函数联系
range表示可以生成一系列数字的函数
比如印1到10的数字
for i in range(1,11):#上限不在内
print(i)
1
2
3
4
5
6
7
8
9
10
for-else语句练习
打印学生列表姓名
如果是jingjing打印好久不见啊
for name in [“xixi”,“jingjing”,“huahua”]:#表示把列表里的姓名都打印出来
print(name)
if name == “jingjing”:#注意这里不是一个等号,而是两个等号表示判断
print(“好久不见啊{}”.format(name))
else:
print(“同学你好”)
else:
print(“同学我们不认识”)
xixi
同学你好
jingjing
好久不见啊jingjing
huahua
同学你好
同学我们不认识
for 循环之break
break表示无条件结束整个循环,简称循环猝死
比如从1-10中找到6就结束
for i in range(1,11):
if i ==7:#这是一个判断语句
print(“我找到了”)
break
else:
print(“i”)#注意如果这里的i有双引号和没有双引号的区别
for i in range(1,11):
if i ==7:#这是一个判断语句
print(“我找到了”)
break
else:
print(i)#注意如果这里的i有双引号和没有双引号的区别
i
i
i
i
i
i
我找到了
1
2
3
4
5
6
我找到了
for 循环之continue
continue表示无条件结束本次循环,进入下一轮循环
找到1-10中的偶数
for i in range(1,11):
if i%2 ==1:
continue
else:
print(i)
方式2
for i in range(1,11):
if i%2 ==0:
print(i)
方式3
for i in range(1,11):
if i%2 ==1:
continue
print("{}是偶数".format(i))
2
4
6
8
10
2
4
6
8
10
2是偶数
4是偶数
6是偶数
8是偶数
10是偶数
for 循环之pass
pass一般用于占位
for i in range(1,11):
pass
print(“我只是占位”)
我只是占位
我只是占位
我只是占位
我只是占位
我只是占位
我只是占位
我只是占位
我只是占位
我只是占位
我只是占位
def func(name,age,addr):
print("{0}今年{1}岁,住在{2}".format(name,age,addr))
print(“温文尔雅,落落大方”)
n = “习习”
a = “20”
addr = “重庆”
func(n,a,addr)
习习今年20岁,住在重庆
温文尔雅,落落大方
#关键字函数
def func_key(name=“n”,age=“a”,addr=“addr”):
print("{0}今年{1}岁,住在{2}".format(name,age,addr))
print(“温文尔雅,落落大方”)
n = “习习”
a = “20”
addr = “重庆” print(type(args))
func_key(name=n,age=a,addr=addr)
习习今年20岁,住在重庆
温文尔雅,落落大方
收集参数代码
模拟一个学生做自我介绍,但具体内容不清楚
def stu(args):#参数args不是必须这么写,但是约定俗成,args相当于一个list,这里的是收集参数的一个标志
print(“小伙伴们,大家好,很高兴认识大家”)
print(type(args))#type是检验args的函数类型,这里不需要双引号
for item in args:
print(item)
stu(“习习”,20,“家住重庆”)
stu(“jingjing”)
小伙伴们,大家好,很高兴认识大家
<class ‘tuple’>
习习
20
家住重庆
小伙伴们,大家好,很高兴认识大家
<class ‘tuple’>
jingjing
收集参数案例
收集参数可以不带任何参数
stu()
小伙伴们,大家好,很高兴认识大家
<class ‘tuple’>
收集参数之关键字收集参数
模拟一个学生做自我介绍,但具体内容不清楚
def stu(kwargs):#参数kwargs不是必须这么写,但是约定俗成,这里的是关键字收集参数的一个标志
print(“小伙伴们,大家好,很高兴认识大家”)
print(type(kwargs))#type是检验args的函数类型,这里不需要双引号
for k,v in kwargs.items():#这里的.items是访问字典的格式
print(k,"—",v)#注意变量不能用双引号
stu(name=“习习”,age=20,add=“家住重庆”)
print("*"*20)#这个表示打印20遍星号
stu(name=“jingjing”)
小伙伴们,大家好,很高兴认识大家
<class ‘dict’>
name — 习习
age — 20
add — 家住重庆
小伙伴们,大家好,很高兴认识大家
<class ‘dict’>
name — jingjing
收集参数混合通用案例
def stu(name,age,args,hobby=“没有”,**kwargs):#要遵循普通参数,普通收集参数,默认参数,关键字收集参数的顺序
print(“小伙伴们,大家好,相逢就是一种缘分”)
print(“我叫{0},今年{1}岁了”.format(name,age))
if hobby ==“没有”:
print(“不好意思,我暂时还没有爱好”)
else:
print(“我的爱好是{0}”.format(hobby))
for item in args:
print(item)
print(""*20)#注意这是和上面的for是同一个缩进
stu(“xixi”,20)
# 收集参数混合通用案例 def stu(name,age,*args,hobby="没有",**kwargs):#要遵循普通参数,普通收集参数,默认参数,关键字收集参数的顺序 print("小伙伴们,大家好,相逢就是一种缘分") print("我叫{0},今年{1}岁了".format(name,age)) if hobby =="没有": print("不好意思,我暂时还没有爱好") else: print("我的爱好是{0}".format(hobby)) for item in args: print(item) print("*"*20)#注意这是和上面的for是同一个缩进 stu("xixi",20)
stu(“xixi”,20,“jingjing”,hobby=“画画”,hobby2=“烹饪”,hobby3=“健身”)
小伙伴们,大家好,相逢就是一种缘分
我叫xixi,今年20岁了
我的爱好是画画
jingjing
hobby2 - - - 烹饪
hobby3 - - - 健身
提升局部变量为整体变量需要使用global
def func():
global b1
b1 = 100
print()
print(“于平凡中做出不平凡之事”)
b2 = 99
print()
print(b1)
func()
100
于平凡中做出不平凡之事
eval() 函数,它的作用是把一个字符串当成代码执行
x = 100
y = 200
z1 = x + y
z2 = eval(“x + y”)
print(z1)
print(z2)
300
300
exec() 函数,它的作用是把一个字符串当成代码执行,但是不返回结果
x = 100
y = 200
z1 = x + y
z2 = exec(“x + y”)
print(z1)
print(z2)
300
None
exec() 函数,它的作用是把一个字符串当成代码执行,但是不返回结果
x = 100
y = 200
z1 = x + y
z2 = exec(“print(‘x + y:’,x + y)”)#注意字符串中引号的写法
print(z1)
print(z2)
x + y: 300
300
None
递归函数案例
斐波拉契数列,即f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2)
def fib(n):
if n == 1:
return 1
if n == 2:
return 1
return fib(n-1) + fib(n-2)#注意这里是用的return函数,而不是类似于x = x-1 + x-2
print(fib(15))
fib(15)
610
Out[150]:610
1创建空列表
L1 = []
print(type(L1))# type是内置函数,负责打印出变量类型
print(L1)
2创建带值列表
L2 = [100]
print(type(L2))# type是内置函数,负责打印出变量类型
print(L2)
3 创建列表带多个值
L3 = [2,1,38,2]
print(type(L3))# type是内置函数,负责打印出变量类型
print(L3)
4使用list()
L4 = list()
print(type(L4))# type是内置函数,负责打印出变量类型
print(L4)
<class ‘list’>
[]
<class ‘list’>
[100]
<class ‘list’>
[2, 1, 38, 2]
<class ‘list’>
[]
列表常用操作
- 访问
- 使用下标操作(索引)
- 列表的位置从0开始
- 分片操作
- 对列表进行任意一段的截取
- L[:]
下标访问列表
L = [2,3,5,2,8,8]
print(L[2])#注意这里面的是大括号
print(L[4])
5
8
分片截取
print(L[1:4])#注意这里还是上限不在内原则
注意下标值可以为空,左边下标值默认为零,右边下标值默认为最大值加一,即取到最后一个值
print(L[2:])
[3, 5, 2]
[5, 2, 8, 8]
分片可以控制增长幅度,默认增长幅度为1
print(L[1:5:1])# 第二个冒号后面的数字表示增长幅度
print(L[1:5:2])
下标值可以超出范围,超出后不在考虑多余下标内容
print(L[3:12])
[3, 5, 2, 8]
[3, 2]
[2, 8, 8]
分片之负数下标
print(L)
print(L[-2:-4])#结果为空,因为分片总是默认从左往右截取
print(L[-4:-2])# 数组最后一个数的下标是-1
print(L[-2:-4:-1])# 如果分片值一定是左边比右边大则步长参数就需要使用负数
# 分片之负数下标 print(L) print(L[-2:-4])#结果为空,因为分片总是默认从左往右截取 print(L[-4:-2])# 数组最后一个数的下标是-1 print(L[-2:-4:-1])# 如果分片值一定是左边比右边大则步长参数就需要使用负数
a = “A”
b = “B”
c = “C”
n = 1
hano(n,a,b,c)
A --> C
n = 2
hano(n,a,b,c)
A --> B
A --> C
B --> C
n = 3
hano(n,a,b,c)
A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C
list(列表)
del删除
a = [1,5,2,5,4,3]
print(id(a))
del a[2]
print(a)
print(id(a))
2604443711368
[1, 5, 5, 4, 3]
2604443711368
使用加号连接两个列表
a = [1,5,2,5,4,3]
b = [2,5,2,3,5]
c=[“s”,“f”]
d = a + b + c
print(d)
[1, 5, 2, 5, 4, 3, 2, 5, 2, 3, 5, ‘s’, ‘f’]
使用乘号操作列表
列表直接跟一个整数相乘,相当于把n个列表连接起来
a = [1,5,2,5,4,3]
b = a * 2
print(b)
[1, 5, 2, 5, 4, 3, 1, 5, 2, 5, 4, 3]
成员资格运算符
就是判断一个元素是否在list里面
a = [1,5,2,5,4,3]
b = 10
print(b in a)
b = 1
print(b in a)
False
True
链表的遍历
for in list
a = [1,5,2,5,4,3]
for i in a:
print(i)
1
5
2
5
4
3
双层列表循环
a 为嵌套列表或者双层列表
a = [[“one”,1],[“two”,2],[“three”,3]]
for k,v in a:
print(k,"- - -",v)
a = [[“one”,1,“o”],[“two”,2,“t”],[“three”,3,“h”]]
for k,v,w in a:
print(k,"- - -",v,"- - -",w)
one - - - 1
two - - - 2
three - - - 3
one - - - 1 - - - o
two - - - 2 - - - t
three - - - 3 - - - h
列表内涵:list content,通过简单方法创建列表
for 创建
s = [“a”,“b”,“c”]
用list s 创建一个list t
t = [i for i in s]#这个就是把s中的每一个元素放到新列表t中
print(t)
[‘a’, ‘b’, ‘c’]
过滤list中一部分内容形成新的列表
a = [i for i in range(1,15)]
b = [m for m in a if m % 2==0]#把list中的偶数取出来
print(b)
[2, 4, 6, 8, 10, 12, 14]
列表生成可以是嵌套,等价于两个for循环
列表生成可以嵌套
由两个列表a,
a = [i for i in range(1,4)]
print(a)
b = [j for j in range(100,400) if j % 100 == 0 ]
print(b)
c = [m + n for m in a for n in b]
print©
下面代码与上面代码等价
for m in a:
for n in b:
print(m + n,end=" ")
[1, 2, 3]
[100, 200, 300]
[101, 201, 301, 102, 202, 302, 103, 203, 303]
101 201 301 102 202 302 103 203 303
嵌套列表也可以使用条件表达式
d = [m + n for m in a for n in b if m + n < 250]
print(d)
[101, 201, 102, 202, 103, 203]
关于列表的常用函数
len求列表长度
a = [x for x in range(1,100)]
print(len(a))
max 求列表中的最大值
min 求列表中的最小值
print(max(a))
将其他格式的数据转换成list
a = [1,2,3,5]
print(list(a))
b = “我爱王晓静”
print(list(b))
c = “i love wangxiaojing”
print(list©)
把range产生的内容转换成list
x = range(12,19)
print(list(x))
99
99
[1, 2, 3, 5]
[‘我’, ‘爱’, ‘王’, ‘晓’, ‘静’]
[‘i’, ’ ', ‘l’, ‘o’, ‘v’, ‘e’, ’ ', ‘w’, ‘a’, ‘n’, ‘g’, ‘x’, ‘i’, ‘a’, ‘o’, ‘j’, ‘i’, ‘n’, ‘g’]
[12, 13, 14, 15, 16, 17, 18]