python基础 学习笔记

这篇博客详细介绍了Python的基础语法,包括判断语句(单分支、二分支、多分支和三目运算符)、循环语句(for和while),以及迭代器、生成器、推导式、lambda表达式、函数参数传递、高阶函数、装饰器和异常处理等核心概念,旨在帮助初学者掌握Python编程基础。
摘要由CSDN通过智能技术生成

判断与循环语句

判断语句if 单分支

语法:

if 条件:
代码块
1.冒号必须是英文状态下
2.必须要缩进

执行流程

在这里插入图片描述

代码

 eval(字符串)
 #把字符串转换成int类型
   a = eval("10")
   print(a) #10
   print(type(a)) #<class 'int'>
 #`在这里插入代码块对字符串进行计算
   a = "3*2" 
   print(a) #3*2
   b = eval(a)
   print(b) #6
#input("请猜一个数字") ---Str
#eval() 把Str转换成int
guess  = eval(input("请猜一个数字"))
if guess ==99:
    print("恭喜你猜对了") 
    #恭喜你猜对了

二分支

语法
if 条件:
代码块 else:
代码块

执行流程

在这里插入图片描述

代码

guess  = eval(input("请猜一个数字"))
if guess == 99:
    print("恭喜你猜对了")
else:
    print("谢谢惠顾")

多分支

语法

if 条件:
代码块
elif 条件:
代码块
elif 条件:
代码块

else:
代码块

执行流程图

在这里插入图片描述

代码

score = eval(input("请输入一个成绩:"))
if score >= 90:
    print("a")
elif 90 > score>=80:
    print("B")
elif 80 >score>=70:
    print("C")
elif 70>score>=60:
    print("D")
else:
    print("不及格")

三目运算符

语法:
满足条件的代码块
if 条件 else 不满足条件的代码块

执行流程

在这里插入图片描述

代码

guess  = eval(input("请猜一个数字"))

"""
 三目运算符
   if的缩写
满足条件的代码块  if 条件 else 不满足条件的代码块
"""
print("恭喜你,猜对了")if guess == 99 else print("谢谢惠顾")

注意
1.必须是二分支语句

条件判断以及组合

操作符及使用 描述
x and y 两个条件x和y的逻辑与
x or y 两个条件x和y的逻辑或
not x 条件x的逻辑非

循环语句for

语法
for 变量 in 遍历结构:
代码块

执行流程

在这里插入图片描述

用法

字符串遍历

Str = "hello python"
for  i in Str:
    print(i)
"""
h
e
l
l
o
 
p
y
t
h
o
n
"""

列表遍历

list01 = [1234]
for i in list01:
    print(i)
"""
1
2
3
4
"""

字典遍历

dict01 = {
   "张三":18,"李四":20,"王五":80}
"""
 1.用普通遍历,只能打印key
张三
李四
王五
"""
for i in dict01:
    print(i)
"""
 2.字典.items()  返回一个元组
 ('张三', 18)
<class 'tuple'>
('李四', 20)
<class 'tuple'>
('王五', 80)
<class 'tuple'>
"""
for t in dict01.items():
    print(t)
    print(type(t))
"""
 3.获取单独的key和value,就是想办法把元组拆分,返回基本数据类型
     把元组赋值给两个变量
张三
<class 'str'>     
18
<class 'int'>     
李四
<class 'str'>     
20
<class 'int'>     
王五
<class 'str'>     
80
<class 'int'> 
"""
for k,v in dict01.items():
    print(k)
    print(type(k)) #Str
    print(v)
    print(type(v)) #int

Set集合遍历

set01 = {
   1,2,3,4}
for i in set01:
    print(i)

无限循环(while)

语法

while 条件:
变量改变公式
代码块

代码

a = 10
while a>0:
#变量不断改变,为了满足条件,避免进入死循环
    a -= 1
    print(a)

break continue

break跳出并结束当前整个循环,不执行循环后的语句
continue结束当次循环,继续执行后续次数循环

执行流程

在这里插入图片描述在这里插入图片描述

代码

for i in [1,2,3,4,5]:
    if i==2:
        break
    print(i) #1

for i in [1,2,3,4,5]:
    if i==2:
        continue
    print(i) #1
"""
 1
 3
 4
 5
"""

循环加else

语法

for 变量 in 遍历结构:
代码块
else:
代码块

执行流程

1.先执行完for循环
2.执行完以后执行else

代码

for i in [1,2,3,4,5]:
    print(i)
else:
    print("循环结束")

同理,while能不能加else,可以,和上面一样

while语法
while <条件> :
<语句块1>
else :
<语句块2>

循环结束后,会执行else的代码

迭代器

定义

迭代器是一个可以遍历容器的一个对象
1.迭代器返回一个对象
2.哪些东西可以进行迭代?
容器类型的—list set 字典 字符串 方法

"""
 迭代器
  #注意是两个下划线
  list01.__iter__() 返回一个迭代器对象
"""
list01 = [1,2,3,4]
#注意是两个下划线
a =  list01.__iter__()
print(a) #<list_iterator object at 0x0000024037E0C588>
"""

如何返回值

迭代器对象.next() 返回一个值
1.不只能返回第一个值吗 no 因为next()可以记忆位置,每次你调用一次,他会记住这位置,然后下一次从下一个位置开始
3.可以一直调用
但是没有数据会报错 StopIteration
我们的next没有办法回头,不会从头开始,他只会从记忆的位置的开始

list01 = [1,2,3,4]
print(a.__next__()) #1
print(a.__next__()) #2
print(a.__next__()) #3
print(a.__next__()) #4
print(a.__next__()) #报错

迭代

ist01 = [1,2,3,4]
#注意是两个下划线
a =  list01.__iter__()
"""
 迭代对象的遍历
 1.__next__() 不会从头开始, 每次从记忆的位置开始
 2.for循环就相当于是不断的打印__next__()。但是为什么没报错
   自己抛出StopIteration,然后停止循环
"""
for i in list01:
   print(i)

生成器

定义

生成器也是一种迭代器,但是你只能对其迭代一次。

a = func_add01([2,3,5,7,9])
print(a) 
#<generator object func_add01 at 0x000001AD11F8D148>
for i in a:
	print(i)

	
3
4
6
8
10

>>> a.__next__()
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    a.__next__()
StopIteration
>>> b = func_add01([2,3,5,7,9])
>>> b.__next__()

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个特殊的迭代器。

生成器可以一边循环一边计算 优点是节省内存 关键字是:yield

代码

 def func_add
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值