python学习笔记
Python学习
第一章:python基础
字面量
-
字面量的含义:代码中,被写在代码里固定的值
-
常见的字面量类型
- 整数
- 浮点数
- 字符串
-
print语句完成字面量输出的基本格式
-
print("字符串") print(整数\浮点数)
-
-
注意事项:当数据被引号包起来,无论单引号和双引号,都是字符串
注释
- 注释的作用
- 代码中的解释性语句,用于对代码内容进行解释(注释不是代码,不会被程序执行)
-
单行注释的定义
- 通过一个#定义,在#右侧均为注释内容(规范写法,在#与注释内容之间保留一个空格)
例:
# 打印输出hello world print("hello world") -
多行注释的定义
- 通过一对三引号来定义('''注释内容'''),引号内部均为注释,可以换行
- 多行注释一般对:python文件,类或者方法进行注释
变量
- 变量的定义与作用
- 定义:在程序运行时,能储存数据计算结果或能表示值的抽象概念
- 作用:简单而言,可以用来记录数据
- 变量的定义格式
- 变量名称 = 变量的值
- 变量的特征
- 变量的值可以改变
- python语句多内容的输出
例:
print("内容1","内容2",....,"内容N")
钱包余额练习

数据类型
-
入门的三类数据类型
- 字符串类型(string)
- 整数类型(int)
- 浮点型(float)
-
查看数据类型的方法:使用type()语句
-
基本格式及示例
'''直接输出数据类型''' # 字符串的类型输出 print(type("黑马程序员")) # 整数型的类型输出 print(type(666)) # 浮点型的类型输出 print(type(11.11)) '''用变量存储type语句返回的数据类型'''(举一例,其他类比即可) type1 = type(111) print(type1) -
type()语句的注意事项
- type()语句查看的是字面量和变量中存储的数据的类型而不会是变量的类型(变量无类型)
-
数据类型转换
- 常见的转换语句
| 语句(函数) | 说明 |
|---|---|
| int(x) | 将x转换为一个整数 |
| float(x) | 将x转换为一个浮点数 |
| str(x) | 将x转换为一个字符串 |
- 转换语句的使用举例(仅举一例,其余类比)
# 定义一个浮点型变量x
x = 33.3
#将变量类型转换的基本格式(需要用变量本身或其余变量来获取转换后的变量)
x = int(x)
#将x变量内的数据的类型用type1存储
type1 = type(x)
print(f"x的值为{x},x的类型为{type1}")
'''最终运行结果为
x的值为33,x的类型为<class 'int'>'''
- 注意事项
- 当浮点型转变为实数型时,数据会向下取整而不是四舍五入
- 任何类型都可以转换成字符串,字符串内只有数字才可以转换成数字
- 浮点数转换为整数会丢失精度(小数部分)
标识符
-
标识符的定义:用户在编程过程中所使用的一系列名字,包括但不仅限于变量,类,方法的命名
-
标识符的命名规则:
- 标识符命名中只允许出现:
- 英文(区分大小写)
- 中文
- 数字
- 下划线(_)
- 不可使用关键字(在python中有特殊用途的词)包括但不限于:False,True,And,none,as,if,type等等
- 标识符命名中只允许出现:
-
标识符尽量做到见名知意且简洁
运算符
| 运算符 | 描述 | 示例 |
|---|---|---|
| + | 加 | 10+10=20 |
| - | 减 | 10-10=0 |
| * | 乘 | 10*10=100 |
| / | 除 | 100/10=10 |
| // | 取整除 | 9//2=4(取除法后商4余1,取整除运算取商去余数) |
| % | 取余 | 9//2=4(取除法后商4余1,取余运算取余数去商) |
| ** | 指数 | 10**10=10000000000(十的十次方) |
赋值运算符及复合赋值运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 赋值运算符 | 把等号右边的结果 赋值给左边的变量,如 num =1+2*3,最后 num = 7 |
| += | 加法赋值运算符 | 等效于c = c+a |
| -= | 减法赋值运算符 | c -= a等效于c = c-a |
| *= | 乘法赋值运算符 | c *= a等效于c = c *a |
| /= | 除法赋值运算符 | c /= a等效于c = c/a |
| %= | 取余赋值运算符 | c %= a等效于c = c%a |
| **= | 幂赋值运算符 | c **= a等效于c = c **a |
| //= | 取整除赋值运算符 | c //= a等效于c =c//a |
字符串扩展
- 字符串的定义可以用单引号,双引号以及三引号包围字符串,若想字符串内带有引号,可以使用一种引号包围另一种引号
例:
# 输出hello world
print("hello world")
# 输出hello world
print('hello world')
# 输出hello world
print('''hello world''')
# 输出he'll'o world
print("he'll'o world")
- 若想字符串内带有引号,可以使用一种引号包围另一种引号,也可以使用转义符号
例:
# 输出he'll'o world
print("he'll'o world")
# 输出he"llo wor"ld
print("he\"llo wor\"ld")
字符串拼接
- 完成字符串拼接的方式
- 使用 "+" 号连接字符串变量或者字符串常量即可(无法和非字符串类型拼接)
字符串格式化
- 占位符:%d(整数型) , %f(浮点型) , %s(字符串)
- 通过占位符进行字符串格式化以完成拼接
name = "pm"
score = 534
# 使用占位符完成字符串和其他类型变量的拼接
print("我的名字是%s,我的高考成绩为%d"%(name,score))
- 其他类型变量也可以使用%s占位,%s会把其他类型变为字符串类型
- 数字精度控制
- 我们可以使用辅助符号"m,n”来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),**设置的宽度小于数字自身,不生效 **
- .n,控制小数点精度,要求是数字,会进行小数的四舍五入
- 我们可以使用辅助符号"m,n”来控制数据的宽度和精度
例:
num = 1.12456
# 输出1.12
print("%3.2f"%num)
# 输出 1.12(前面存在一个空格以保证宽度)
print("%5.2f")
- 快速字符串格式化
- 通过语法:f"内容(变量}”的格式来快速格式化
例:
name = "传智播客"
price = 19.99
stock_code = "003032"
stock_price = 19.99
factor = 1.2
days = 7
print(f"公司:{name},股票代码{stock_code},当前股价{stock_price}")
# 输出:公司:传智播客,股票代码003032,当前股价19.99
- 特点:不理会类型,不做精度控制
表达式格式化
参考上述内容,与变量的格式化类似
name = "传智播客"
price = 19.99
stock_code = "003032"
stock_price = 19.99
factor = 1.2
days = 7
print("每日增长系数为%.2f\n经过%d天的增长后\n股价达到了%.2f" % (factor, days, factor**days*price))
'''
输出:
每日增长系数为1.20
经过7天的增长后
股价达到了71.63
'''
练习:股价计算小程序

键盘输入
- 键盘输入的方法:
- 使用input()语句可以从键盘获取输入
使用一个变量接收(存储)input语句获取的键盘输入数据即可
num = input()
print(f"{num}")
练习:欢迎登陆小程序

- 进阶应用:
将对用户输入的提示语放入后面括号
格式:input("提示语")
示例:
num = input("请输入一个数字")
# 还可以直接使用int来快捷转换数据类型(在条件控制语句中尤为有用)
int(input("请输入一个数字"))
print语句扩展
- 输出不换行

- 制表符的应用

**注意点:一个\t最多占四个空格,在四个空格以内都会自动识别对齐
第二章:判断语句学习
布尔类型与比较运算符
- 布尔表达现实生活中的真和假
- True表示真
- False表示假
- 定义变量存储布尔类型数据
- 变量名称 = 布尔类型字面量
- 比较运算符
| 运算符 | 描述 | 示例 |
|---|---|---|
| == | 判断内容是否相等,满足为True,不满足为False | 如a=3,b=3,则(a==b)为True |
| != | 判断内容是否不相等,满足为True,不满足为False | 如a=1,b=3,则(a!=b)为True |
| > | 判断运算符左侧内容是否大于右侧,满足为True,不满足为False | 如a=7,b=3,则(a>b)为True |
| < | 判断运算符左侧内容是否小于右侧,满足为True,不满足为False | 如a=3,b=7,则(a<b)为True |
| >= | 判断运算符左侧内容是否大于等于右侧,满足为True,不满足为False | 如a=3,b=3,则(a >= b)为 True |
| <= | 判断运算符左侧内容是否小于等于右侧,满足为True,不满足为False | 如a=3,b=3,则(a<=b)为True |
if语句的基本格式
- if语句的格式
-
if 要判断的条件:
条件成立时,要执行的代码
-
示例:
# 定义变量
age = 30
# 进行判断
if age > 18:
print("我已经成年了")
- 注意点:
- 判断条件的结果一定是布尔类型
- 不能忘记判断条件后的冒号
- 归属于if语句的代码块,需要在前方填充四个空格缩进
- 使用键盘输入数字做判断时,一定要将数据转化为整型或浮点型
练习:成年人判断

if else语句
- if else的格式
-
if 条件:
满足条件要执行的代码1
满足条件要执行的代码2
......(省略)
else:
不满足条件要执行的代码1
......(省略)
- 示例:
age = 30
if age >= 18:
print("您已成年")
else:
print("您还未成年")
- 注意事项
- else不需要判断条件,当if的条件不满足时,else执行
- else的代码块,同样需要4个空格缩进
练习:我要买票吗

if elif else语句:
- if elif else语句的格式
-
if条件1:
条件1满足应执行的代码
条件1满足应执行的代码
elif条件2:
条件2满足应执行的代码
条件2满足应执行的代码
elif条件N:
条件N满足应执行的代码
条件N满足应执行的代码else:
所有条件都不满足应执行的代码
所有条件都不满足应执行的代码 -
示例:
age = 18
if age > 18:
print("您超过十八岁")
elif age == 18:
print("您刚好18岁")
else:
printf("您未满十八岁")
- 注意事项:
- elif可以写多个
- 判断是互斥且有序的,上一个满足之后下一个就不会再判断了
- 可以在条件判断中直接写input语句(要注意类型转换)
练习:猜猜心里数

该段代码充分体现了if语句的以下特性:
- 程序从上往下依次执行对比和键盘输入语句,当条件成立,程序不再继续执行if语句下面的内容
判断语句的嵌套
- 嵌套判断语句的基本格式:
-
if 条件1:
满足条件1应执行的代码1
满足条件1应执行的代码2 if 条件2:
满足条件2应执行的代码1
满足条件2应执行的代码2 -
示例:
age = 18
if age >= 18:
print("您已经成年")
if age <= 30:
print("并且正值壮年")
else:
print("您虽然成年,但年纪有点大了")
else:
print("您没有成年")
- 注意事项
-
嵌套的关键点在于:空格缩进(决定层次关系)
-
当外层条件满足时,才会执行内部if判断
练习:条件判断语句嵌套

第三章:循环语句的学习
while循环的基础语法
- while循环语句的格式:
- while 条件:
条件满足时,执行的代码1
条件满足时,执行的代码2
条件满足时,执行的代码3
- 以上代码只要条件满足就会无限执行
- 示例
age = 30
while age > 18:
print("您已经成年")
# 会持续无限输出"您已经成年"
- 注意事项:
- while语句的条件需要得到布尔类型,True表示继续循环,False表示结束循环
- 一般情况下需要设置循环的终止条件,如i+=1配合i<100,就能确保100次后停止,否则将无限循环
- 空格缩进和if判断一样,都需要设置
练习:一到一百的和

while循环的基础案例
练习:循环猜数字

其他思路:
设置一个标志,当符合条件,再更改标志以跳出循环

注意事项:
- 上述的第一种思路中,条件符合时,不进入循环,i不会+1,所以i初始值为1
- 第二种思路中,条件符合时,仍会运行循环中的程序一次,i会+1,所以i的初始值为0
while循环的嵌套应用
- while的嵌套循环的基本格式:
- while 条件1:
条件1满足时,执行的代码1
条件1满足时,执行的代码2
条件1满足时,执行的代码3
...(省略)...
while 条件2:
条件2满足时,执行的代码1
条件2满足时,执行的代码2
条件2满足时,执行的代码3
...(省略)... - 示例:
i = 1
j = 1
while i <= 10:
print("我爱你")
i += 1
j = 1
while j <= 10:
print("我要送你花")
j += 1
- 注意事项
- 注意条件的控制,避免陷入无限循环,也要保证能够进入循环
- 多层嵌套也使用空格缩进来确定层次关系
while循环的嵌套案例
练习:九九乘法表

for循环的基础语法
- for循环与while循环的区别

- for循环(遍历循环)的基础语法:
- for 临时变量 in 待处理数据集
循环满足条件时执行的代码
示例:
# 定义字符串name
name = "itheima"
# for循环处理字符串
for x in name:
print(x)
'''
for循环会将name中所有元素拿出来放入x中再并执行代码
字符串中的单个元素即单个字符,故输出结果为:
i
t
h
e
i
m
a
'''
注意事项:
- 无法定义循环条件,只能被动依次取出所有数据处理
- 循环内的语句,需要空格缩进
练习:数一数有几个a

-
range语句
- range语句的三种语法
- range(num)
获取一个从0开始,到num结束的数字序列(不含num本身)
如range(5)取得的数据是:[0,1, 2, 3, 4]-
range(num1,num2 )
获得一个从num1开始,到num2结束的数字序列(不含num2本身)如,range(5, 10)取得的数据是:[5, 6, 7, 8, 9]
-
range(num1, num2, step)
获得一个从num1开始,到num2结束的数字序列(不含num2本身) 数字之间的步长,以step为准(step默认为1),step指取每个数字之间的间隔。如,range(5,10,2)取得的数据是:[5,7, 9]
- 功能:获取一个数字序列,与for循环搭配使用,不需要变量接收
示例:
for x in range(10): print(f"送出第{x}朵玫瑰花")练习:有几个偶数
![有几个偶数.png]()
-
临时变量的作用域
- for循环中的临时变量可以在外部被访问,但这并不规范(不建议使用)
for循环的嵌套应用
- 嵌套for循环的基础格式
for 临时变量 in 待处理数据集(序列):
循环满足条件应执行的代码1
循环满足条件应执行的代码2
循环满足条件应执行的代码N
for 临时变量 in 待处理数据集(序列):
循环满足条件应执行的代码1
循环满足条件应执行的代码2
循环满足条件应执行的代码N
- 注意事项:
- for循环与while循环可以互相嵌套
- 注意缩进确定层次
练习:九九乘法表

循环中断:break和continue
- continue:用于中断循环,直接进入下一循环
- 特点:在for循环与while循环中效果一致
- 应用场景:在循环中,因某些原因,临时结束当此循环
示例:
for i in range(1,6):
print("1")
continue
print("2") # 此行代码不会被执行因为一直被跳过
- 注意事项:在嵌套循环中,只对所处的那个小循环生效
- break:用于直接结束循环
- 特点:在for循环与while循环中效果一致
- 应用场景:需要直接结束循环运行循环后的语句或停止循环
示例:
for i in range(1,6):
print("1") # 这段代码只会被执行一次
break
print("2") # 此行代码不会被执行因为一直被跳过
- 注意事项:在嵌套循环中,只对所处的那个小循环生效
循环综合案例
练习:发工资



浙公网安备 33010602011771号