1. python基础语法
本文最后更新于 2024-07-06,文章内容可能已经过时。
一. python基础语法
1. pycharm中常用快捷键
2. Python中常用的有6种值(数据)的类型
| 类型 | 描述 | 说明 |
| —————— | ——————————————————— | ————————————————— |
| 整数(int) | | 整数(int),如:10、-10 |
| 浮点数(float) | | 浮点数(float),如:13.14、-13.14 |
| 复数(complex) | | 复数(complex),如:4+3j,以j结尾表示复数 |
| 布尔(bool) | 表达现实生活中的逻辑,即真和假,True表示真,False表示假。 | 布尔(bool)中True本质上是一个数字记作1,False记作0 |
| 字符串(String) | 描述文本的一种数据类型 | 字符串(string)由任意数量的字符组成 |
| 列表(List) | 有序的可变序列 | Python中使用最频繁的数据类型,可有序记录一堆数据 |
| 元组(Tuple) | 有序的不可变序列 | 可有序记录一堆不可变的Python数据集合 |
| 集合(Set) | 无序不重复集合 | 可无序记录一堆不重复的Python数据集合 |
| 字典(Dictionary) | 无序Key-Value集合 | 可无序记录一堆Key-Value型的Python数据集合 |
3.python中基于print语句完成各类字面量的输出
字面量:在代码中,被写下来的的固定的值,称之为字面量。
print(字面量)
如:print(10),输出整数10;print(13.14),输出浮点数13.14;print(“6666”),输出字符串。
4. 注释
单行注释:以 #开头,#右边 的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用。(注意,#号和注释内容一般建议以一个空格隔开)
多行注释: 以 一对三个双引号 引起来 (“““注释内容”““)来解释说明一段代码的作用使用方法。
# 单行注释
"""
多行注释
"""
5. 变量定义和使用
变量名 = 变量值
# 定义一个变量,用来记录钱包余额
money = 50
# 通过print语句,输出变量记录的内容;通过逗号分隔输出多个量
print("钱包还有:", money)
# 买了一个冰淇淋,花费10元
money = money - 20
print("买了冰淇淋花费10元,还剩余:", money, "元")
6. python中:变量无类型,(但它存储的)数据有类型
type()语句的使用:查看<字面量>的类型
# 要知道,不是变量是字符串,而是它存储了:字符串
name = "GrayPigeon"
name_type = type(name)
7. 数据类型的转换
| 语句(函数) | 说明 |
| ————– | ——————— |
| int(x) | 将x转换为一个整数 |
| float(x) | 将x转换为一个浮点数 |
| str(x) | 将对象 x 转换为字符串 |
注意:
- 任何类型,都可以通过str(),转换成字符串
- 字符串内必须真的是数字,才可以将字符串转换为数字
- 浮点数转整数会丢失精度,也就是小数部分
8. 标识符
变量的名字,方法的名字,类的名字,等等,我们把它统一的称之为标识符,用来做内容的标识。所以,标识符是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。
标识符命名规则:
- 内容限定:标识符命名中,只允许出现:英文、中文、数字、下划线(_)
- 不推荐使用中文
- 数字不可以开头
- 大小写敏感
- 不可使用关键字,如:False,True,None,and,try,while……
- 注意:关键字也大小写敏感(即只要大小写不一致,就不算占用关键字)
变量命名规范:见名知意,下划线命名法(firse_name),英文字母全小写
9. 运算符
算术(数学)运算符
| 运算符 | 描述 | 实例 |
| —— | —— | ———————————————————— |
| + | 加 | 两个对象相加 a + b 输出结果 30 |
| - | 减 | 得到负数或是一个数减去另一个数 a - b 输出结果 -10 |
| * | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 |
| / | 除 | b / a 输出结果 2 |
| // | 取整除 | 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
| % | 取余 | 返回除法的余数 b % a 输出结果 0 |
| | 指数 | a**b 为10的20次方, 输出结果 100000000000000000000 |
赋值运算符
| 运算符 | 描述 | 实例 |
| ———- | ———- | ———————————————————— |
| = | 赋值运算符 | 把 = 号右边的结果 赋给 左边的变量,如 num = 1 + 2 * 3,结果num的值为7 |
复合赋值运算符
| 运算符 | 描述 | 实例 |
| ———- | —————- | ————————- |
| += | 加法赋值运算符 | 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 |
| //= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
比较运算符
| 运算符 | 描述 | 示例 |
| ———- | ———————————————————– | —————————– |
| == | 判断内容是否相等,满足为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 |
10. 字符串定义方式
字符串有3种不同的定义方式:双引号定义,单引号定义,三引号定义
三引号定义法中,和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串;不使用变量接收它,就可以作为多行注释使用。
字符串的引号嵌套
单引号定义法,可以内含双引号
双引号定义法,可以内含单引号
可以使用转意字符(\)来将引号解除效用,变成普通字符串
name = "\"带双引号的字符串"\"
11. 字符串拼接
如果我们有两个字符串(文本)字面量或字符串变量,可以将其拼接成一个字符串,通过+号即可完成
name = "dsd"
print("我的名字是:" + name)
注意:无法和非字符串类型进行拼接。
12. 字符串格式化
通过将字符串格式化的方式实现字符串和其他类型变量的快速拼接
| 格式符号 | 转化 |
| ——– | ——————————– |
| % | 表示占位 |
| %s | 将内容转换成字符串,放入占位位置 |
| %d | 将内容转换成整数,放入占位位置 |
| %f | 将内容转换成浮点型,放入占位位置 |
数字精度控制
以使用辅助符号“m.n”来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
- .n,控制小数点精度,要求是数字,会进行小数的四舍五入
例如:
%5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。
%5.2f:表示将宽度控制为5,将小数点精度设置为2(小数点和小数部分也算入宽度计算)。
%.2f:表示不限制宽度,只设置小数点精度为2。
# 通过占位的形式,完成拼接
name = "黑马程序员"
message = "学IT来:%s" % name
print(message)
# 通过占位的形式,完成数字和字符串的拼接(将数字转成字符串再拼接)
class_num = 57
avg_salary = 16781
message = "Python大数据学科,北京%s期,毕业平均工资:%s" % (class_num, avg_salary)
print(message)
name = "某宝"
setup_year = 2006
stock_price = 19.99
message = "%s,成立于:%d,我今天的股价是:%f" % (name, setup_year, stock_price)
print(message)
num1 = 11
num2 = 11.345
print("数字11宽度限制5,结果是:%5d" % num1)
print("数字11宽度限制1,结果是:%1d" % num1)
print("数字11.345宽度限制7,小数精度2,结果是:%7.2f" % num2)
print("数字11.345不限制,小数精度2,结果是:%.2f" % num2)
注意:
多个变量占位变量要用括号括起来,并按照占位的顺序填入。
m和.n均可省略。
如果m比数字本身宽度还小,则m不会生效。
.n会对小数部分做精度限制,同时会对小数部分做四舍五入。
快速格式化写法
f"内容{变量}”
这种方式:不理会类型,不做精度控制,适合对精度没有要求的时候快速使用。
time = 2.500
name = cxk
like = "唱跳篮球"
print(f"我是练习时长{time}的练习生{name},喜欢{like}")
表达式格式化
表达式就是一个具有明确结果的代码语句,如 1 + 1、type(“字符串”)、3 * 5等。表达式也可直接进行格式化
格式化方法:
f”{表达式}”
“%s\%d\%f” % (表达式、表达式、表达式)
print("1 * 1的结果是:%d" % (1*1))
12. 数据输入
数据输出:print()
数据输入:input(),获取键盘输入的数据
注意:
- 可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息。
- 无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型(若需要其他类型,需自行进行类型转换)
time = 2.500
name = cxk
like = input("请输入你的爱好:")
print(f"我是练习时长{time}的练习生{name},喜欢{like}")
13. 判断语句
if语句
if 要判断的条件:
满足条件时执行的语句1
满足条件时执行的语句2
语句3(在if的代码块外,无论条件成立与否都会执行)
判断语句的结果,必须是布尔类型True或False,True会执行if内的代码语句,False则不会执行
if语句注意事项
- 判断条件的结果一定要是布尔类型
- 不要忘记判断条件后的: 冒号
- 归属于if语句的代码块,需在前方填充4个空格缩进
if lese语句
if 条件1:
满足条件1时执行的语句1
满足条件1时执行的语句2
……
else:条件2
满足条件2时执行的语句1
满足条件2时执行的语句2
……
else:
不满足条件1和2时执行的语句1
不满足条件1和2时执行的语句2
……
if else语句注意事项
- 最后一个else,不需要判断条件
- 和if的代码块一样,else的代码块同样需要4个空格作为缩进
14. 判断语句的嵌套
- 嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断
- 嵌套的关键点,在于:空格缩进
- 通过空格缩进,来决定语句之间的:层次关系
15. while循环的基础语法
while语句注意事项:
- 条件需提供布尔类型结果,True继续,False停止
- 空格缩进不能忘
- 请规划好循环终止条件,否则将无限循环
"""
演示使用while的嵌套循环
打印输出九九乘法表
"""
# 定义外层循环的控制变量
i = 1
while i <= 9:
# 定义内层循环的控制变量
j = 1
while j <= i:
# 内层循环的print语句,不要换行,通过\t制表符进行对齐
print(f"{j} * {i} = {j * i}\t", end='')
j += 1
i += 1
print() # print空内容,就是输出一个换行
16.for循环的基础语法
while循环语句和for循环语句两者能完成的功能基本差不多,但仍有一些区别:
- while循环的循环条件是自定义的,自行控制循环条件
- for循环是一种”轮询”机制,是对一批内容进行”逐个处理”
从待处理数据集中:逐个取出数据赋值给临时变量 (类似java的增强for循环)
for 临时变量 in 待处理数据集
循环满足条件时执行的代码
for循环的注意点
- 无法定义循环条件,只能被动取出数据处理
- 要注意,循环内的语句,需要有空格缩进
- 临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部(如果在for循环外部访问临时变量:实际上是可以访问到的,但在编程规范上,是不允许这么做的)
"""
演示for循环的练习题:数一数有几个a
"""
# 统计如下字符串中,有多少个字母a
name = "itheima is a brand of itcast"
# 定义一个变量,用来统计有多少个a
count = 0
# for 循环统计
# for 临时变量 in 被统计的数据:
for x in name:
if x == "a":
count += 1
print(f"被统计的字符串中有{count}个a")
语法中的:待处理数据集,严格来说,称之为:可迭代类型。
可迭代类型指,其内容可以一个个依次取出的一种类型,包括:
字符串、列表、等、元组
for循环语句,本质上是遍历:可迭代对象。
尽管除字符串外,其它可迭代类型目前没学习到,但不妨碍我们通过学习range语句,获得一个简单的数字序列(可迭代类型的一种):
语法1:range(num)
获取一个从0开始,到num结束的数字序列(不含num本身)如range(5)取得的数据是:[0, 1, 2, 3, 4]
语法2:range(num1, num2)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)如,range(5, 10)取得的数据是:[5, 6, 7, 8, 9]
语法3:range(num1, num2, num3)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)数字之间的步长,以step为准(step默认为1)如,range(5, 10, 2)取得的数据是:[5, 7, 9]
"""
演示Python中的range()语句的基本使用
一般搭配for循环使用,通过range()锁定for循环执行的次数
"""
# range语法1 range(num)
for x in range(10):
print(x)
# range 语法2 range(num1, num2)
for x in range(5, 10):
# 从5开始,到10结束(不包含10本身)的一个数字序列,数字之间间隔是1
print(x)
# range 语法3 range(num1, num2, step)
for x in range(5, 10, 2):
# 从5开始,到10结束(不包含10本身)的一个数字序列,数字之间的间隔是2
print(x)
```python
"""
演示for循环打印九九乘法表
"""
# 通过外层循环控制行数
for i in range(1, 10):
# 通过内层循环控制每一行的数据
for j in range(1, i + 1):
# 在内层循环中输出每一行的内容
print(f"{j} * {i} = {j * i}\t", end='')
# 外层循环可以通过print输出一个回车符
print()
17. continue和break的使用
continue关键字的作用:中断本次循环,直接进入下一次循环。
break关键字的作用:直接结束所在的循环
注意事项
- continue和break,在for和while循环中作用一致
- 在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用
"""
演示循环语句的中断控制:break和continue
"""
import random
num = random.randint(1, 10)
演示循环中断语句 continue
for i in range(1, 6):
print("语句1")
continue
print("语句2")
# 演示break的嵌套应用
for i in range(1, 6):
print("语句1")
for j in range(1, 6):
print("语句2")
break
print("语句3")
print("语句4")
18. 随机数的使用
import ramdom
num = random.randint(1,100)
19. print语句不换行的写法
# print()语句默认输出后换行
print("Hello")
# 在双引号后加入end=''即可不换行
print("Hello",end='')
20. 制表符\t
在字符串中,有一个特殊符号:\t,效果等同于在键盘上按下:tab键。它可以让我们的多行字符串进行对齐。
print("Hello\tWorld")
print("Hi\tWorld")
- 感谢你赐予我前进的力量