第二章 Python基础语法
2.1 字面量
概念:字面量是指在代码中被写下来的固定的值。
- python常用的有6种值(数据)的类型
- 数字(Number)
- 整数(int):10,-10等。
- 浮点数(float):13.14,5.21等。
- 复数(complex):4+3j,以j结尾表示复数。
- 布尔(bool):真和假,True表示真,False表示假。
- 字符串(String)
- 字符串:描述文本的一种数据类型,由任意数量的字符组成,又称文本,需要用“ ”包裹起来。
- 列表(List)
- 列表:有序的可变序列,最常使用,可有序记录数据。
- 元组(Tuple)
- 元组:有序的不可变序列,可有序记录不可变的python数据集合。
- 集合(Set)
- 集合:无序不重复集合,可无序记录不重复的python数据集合。
- 字典(Dictionary)
- 字典:无序Key-Value集合,可记录Key-Value型python数据集合。
- 代码中如何描述字面量
123456
13.14
"学习python"
#输出字面量
print(123456)
print(13.14)
print("学习python")
2.2 注释
-
注释:在代码程序中对程序代码进行解释说明的文字
-
注释的作用:增强程序的可读性
-
使用注释
-
单行注释:以#开头,其右边所有文字都为注释,起辅助说明作用。
# 单行注释
-
多行注释:以一对三引号引起来(“”“注释内容”“”)来解释说明某一段代码,支持换行。
"""多行 注释 """ print("多行注释")
-
2.3 变量
变量:在程序运行时,能储存计算结果或能表示值的抽象概念。
变量的作用:记录数据
变量的特征:变量的值可以改变
变量的定义
- 变量名 = 变量值:等号表示赋值,表示将等号右边的值,赋予左侧的变量
# 定义一个变量,用来记录钱包余额
money = 50
# 通过print语句,输出变量记录的内容
print("钱包还有:", money)
# 买了一个冰淇淋,花费10元
money = money - 10
print("买了冰淇淋钱包还有:", money , "元")
2.4 数据类型
- 入门阶段主要学习的数据类型
类型 | 描述 | 说明 |
---|---|---|
string | 字符串类型 | 用引号引起来的数据都是字符串 |
int | 整型(有符号) | 数字类型,存放整数 |
float | 浮点型(有符号) | 数字类型,存放小数 |
- 验证数据的类型
使用type( )语句查看数据的类型:type(被查看类型的数据)
# 1.直接输出类型信息
print(type("学习python"))
print(type(123456))
print(type(13.14))
# 输出
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
<class 'str'>
<class 'int'>
<class 'float'>
# 2.用变量存储type()的结果(返回值)
string_type = type("学习python")
int_type = type(123456)
float_type = type(13.14)
print(string_type)
print(int_type )
print(float_type)
# 3.查看变量中存储的数据类型,查看的是数据的类型
name = "暮夏十二"
name_type = type(name)
print(name_type)
-
理解变量无类型,数据有类型
python中变量没有类型,但它存储的数据有类型
2.5 数据类型转换
- 为什么要进行数据类型转换?
- 从文件中读取的数字,默认是字符串,需要转换成数字类型
- input()语句,默认结果是字符串,若需要数字也需要转换
- 将数字转换成字符串用以写出到外部系统
- 字符串、整数、浮点数之间的转换
- 常见的转换语句
语句(函数) | 说明 |
---|---|
int(x) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
str(x) | 将对象x转换为字符串 |
注意:这三个语句都有返回值,可以用print输出或者用变量存储结果。
- 代码编写
# 将数字类型转换成字符串,任何类型都可以通过str转换成字符串
num_str = str(123)
print(type(num_str), num_str)
float_str = str(13.14)
print(type(float_str),float_str)
# 将字符串转换成数字,要确保字符串内容都是数字
num = int("11")
print(type(num), num)
number = float("13.14")
print(type(number), number)
# 整数转浮点数
float_num = float(11)
print(type(float_num), float_num)
# 浮点数转整数,不是四舍五入,会丢失精度,即小数部分。
int_num = int(13.14)
print(type(int_num), int_num)
2.6 标识符
-
什么标识符
标识符:变量的名字、方法的名字、类的名字等统称为标识符,用来做内容的标识。
-
标识符的命名规则
-
内容限定:命名中只允许出现英文、中文(不推荐❌)、数字、下划线_ 。(数字不可以用在开头)
# 如果用数字开头,会出现报错:语法错误 SyntaxError: invalid decimal literal # 用关键字的话,也会出现报错 SyntaxError: invalid syntax
-
大小写敏感:区分大小写
-
不可使用关键字
关键字:False、True、None、and、as、assert、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、nonlocal、not、or、pass、raise、return、try、while、with、yield
-
-
变量的命名规范
- 明了:看到名字知道是什么意思
- 简洁:确保明了的情况下减少名字的长度
- 下划线命名法:多个单词组合变量名,用下划线做分隔
- 英文字母全小写:变量中的英文字母,应全部小写。
2.7 运算符
- 算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 两个对象相加 a + b 输出结果30 |
- | 减 | 得到一个负数或是一个数减去另一个数 a - b 输出结果 -10 |
* | 乘 | 两个数相乘或返回一个被重复若干次的字符串 a * b 输出结果 200 |
/ | 除 | b / a 输出结果 2 |
// | 取整除 | 返回商的整数部分 9 // 2 输出结果 4,9.0 // 2.0 输出结果 4.0 |
% | 取余 | 返回除法的余数 b % a 输出结果 1 |
** | 指数 | a ** b 为 2 的 3 次方,输出结果 8 |
print("1 + 1 =", 1 + 1)
print("2 - 1 =", 2 - 1)
print("3 * 3 =", 3 * 3)
print("4 / 2 =", 4 / 2)
print("11 //2 =", 11 // 2)
print("9 % 2 =", 9 % 2)
print("2 ** 3 =", 2 ** 3)
# 输出结果:
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
1 + 1 = 2
2 - 1 = 1
3 * 3 = 9
4 / 2 = 2.0
11 //2 = 5
9 % 2 = 1
2 ** 3 = 8
- 赋值运算符
= | 赋值运算符 | 把=右边的结果赋给左边的变量,如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 |
2.8 字符串扩展
2.8.1 字符串的三种定义方式
- 单引号定义法:name = ’ 学习python '。
- 双引号定义法:name = " 学习python "。
- 三引号定义法:name = " " " 学习python " " ",支持换行操作;若不使用变量接收它,可作为多行注释使用。
2.8.2 字符串的引号嵌套
定义的字符串包含:单引号、双引号呢?
- 单引号定义法:可以内含双引号
- 双引号定义法:可以内含单引号
- 可以使用转义字符(\)来将引号解除效用,变成普通字符串
# 在字符串内包含双引号
name = '"学习python"'
# 在字符串中包含的单引号
name1 = "'学习python'"
# 使用转义字符 \ 解除引号的效用
name2 = "\"学习python\""
name2 = '\'学习python\''
2.8.3 字符串拼接
两个字符串(文本)字面量,可以通过+拼接成一个字符串,例如:
print("学习"+"python")
一般情况下,字面量和变量或变量和变量之间会使用拼接,例如:
name = "python"
print("开始学习" + name + "编程知识")
#输出结果:
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
开始学习python编程知识
注意:字符串没有办法通过+和非字符串类型进行拼接
2.8.4 字符串格式化
通过占位的形式拼接字符串 %s
- %表示:要占位
- s表示:将变量变成字符串放入占位的地方
name = "python"
message = "开始学习 %s" % name
print(message)
# 输出结果:
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
开始学习 python
# 字符串和数字类型拼接
# 多个变量占位,变量要用括号括起来,并按照占位的顺序填入。
study_m = 5
avg_salary = 12345
message = "python大数据学科,学习%s个月,平均薪资:%s" % (study_m, avg_salary)
print(message)
# 输出结果
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
python大数据学科,学习5个月,平均薪资:12345
占位符有三类:
格式符号 | 转化 |
---|---|
%s | 将内容转换成字符串,放入占位位置 |
%d | 将内容转换成整数,放入占位位置 |
%f | 将内容转换成浮点型,放入占位位置 |
name = "学习python"
study_year = 2024
study_time = 5.5
message = "开始%s,开始时间:%d,学习时长:%f天" % (name,study_year,study_time)
print(message)
# 输出结果:
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
开始学习python,开始时间:2024,学习时长:5.500000天
2.8.5 格式化的精度控制
使用m.n来控制数字的宽度和精度
- m:控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
- .n:控制小数点精度,要求是数字,会进行小数的四舍五入
示例:
-
%5d:将整数的宽度控制在5为,如数字11,被设置成5d,就会变成[][][空格] [空格] [空格]11,用三个空格补足宽度。
-
%5.2f:将宽度控制为5,将小数点精度设置为2
小数点和小数部分也算入宽度计算。
对11.345设置了%7.2f后,结果是[空格] [空格]11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为.35
-
%.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35。
2.8.6 字符串格式化方式2
字符串格式化快速写法
语法:f"内容{变量}"的格式来快速格式化
特点:不限制类型、不做精度控制
适合:对精度没有要求的时候快速使用
name = "学习python"
study_year = 2024
study_time = 5.5
print(f"开始{name},开始时间:{study_year},学习时长:{study_time}天")
# 输出结果:
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
开始学习python,开始时间:2024,学习时长:5.5天
2.8.7 对表达式进行格式化
-
表达式:一条具有明确执行结果的代码语句
例如:1+1、5*2就是表达式,或者常见的变量定义,等号右侧的都是表达式
-
直接格式化表达式:无需使用变量进行数据存储的时候适用,可以简化代码
print("1 * 1的结果是:%d" % (1 * 1))
print(f"1 * 1的结果是:{1 * 1}")
print("字符串在python中的类型是:%s" % type('字符串'))
# 输出结果
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
1 * 1的结果是:1
1 * 1的结果是:1
字符串在python中的类型是:<class 'str'>
2.9 数据输入
input语句:用来获取键盘输入
- 数据输出:print
- 数据输入:input,使用input( )语句可以从键盘获取输入,使用一个变量接收(存储)input语句获取的键盘输入数据。
print("请告诉我你是谁?") #提示语句
name = input()
print("我知道了,你是%s" % name)
# 输出结果
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
请告诉我你是谁?
学习python的学生
我知道了,你是学习python的学生
input( )语句可以在要求使用者输入内容前,输出提示内容:
name = input("请告诉我你是谁?")
print("我知道了,你是%s" % name)
# 输出结果
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
请告诉我你是谁?学习python的学生
我知道了,你是学习python的学生
# 输入数字类型
num = input("你学习python多久了:")
print("类型是:", type(num))
# 输入结果:说明input()语句把输入的内容当做字符串
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
你学习python多久了:5
类型是: <class 'str'>
# 数据类型转换
num = input("你学习python多久了:")
num = int(num)
print("类型是:", type(num))
# 输出结果:
D:\dev\python\python3.10.4\python.exe D:/Projects/PycharmProjects/pythonProject/test1.py
你学习python多久了:5
类型是: <class 'int'>