Python基础(一) | Python的基本语法
Python基础(一)| Python的基本语法
⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。
Part1 数据类型
1.1 基本类型:数字、字符串、布尔
1.1.1 数字类型
- int 整型 整数
2
- float 浮点型 带小数的数
2.0
- complex 复数 a+bj
3+4j
1.1.2 字符串类型
- str 字符串 视作文本
- 组成: 由数字、字母、空格、其他字符等组合而成
- 表达: 用" " 或’ ’
"timerring 2 @#$^&)"
1.1.3 布尔类型
- bool 布尔类型
- 主要用于逻辑运算
y = 2 < 1
y
Output:
False
上述类型均可定义单个数据,如果有一组数据,该如何表示?
1.2 组合类型:列表、元组、字典、集合
1.2.1 列表
- list 列表 序列类型: 数据有位置顺序
- 表示方式: [data1,data2…]
a = [1, 2, 3, 4, 5]
a[4]
Output:
5
1.2.2 元组
- tuple 元组 序列类型
- 表示方式: (data1,data2…)
- 元素不支持修改——“不可变的列表”
b = (1, 2, 3, 4, 5)
b[0]
Output:
1
1.2.3 字典
- dict 字典 映射类型: 通过“键”-“值”的映射实现数据存储和查找
- 表示方式: {key1:value1 , key2:value2 , …}
- 其内部是无序的。
student = {201901: "小明", 201902: "小红", 201903: "小强"}
student[201902]
Output:
'小红'
1.2.4 集合
- set 集合 一系列互不相等元素的集合,无序的
- 表示方式: {data1,data2…}
s = {"小明", "小红", "小强", "小明"}
s
Output:
{'小强', '小明', '小红'}
在程序中,如何来引用这些数据?
- 非常通俗的处理办法:赋值给一个变量
Part2 变量
2.1 变量的概念
- “量” 实实在在的对象:如数据、抽象
- “变” 可变性:增、删、查、改等
- 变量定义二要素: 变量名、赋值
x = 1
2.2 变量的命名
2.2.1 哪些可以用来做变量名?
- 大写字母、小写字母、数字、下划线、汉字及其组合。
- 严格区分大小写
Python_is_第1名 = True
python_is_第1名 = False
2.2.2 哪些情况不被允许?
- 首字符不允许为数字
1_fruit = "apple"
Output:
File "<ipython-input-59-e3b1d93d01a0>", line 1
1_fruit = "apple"
^
SyntaxError: invalid token
- 变量名中间不能有空格
my fruit = "apple"
Output:
File "<ipython-input-60-36327c3a601f>", line 1
my fruit = "apple"
^
SyntaxError: invalid syntax
- 不能与33个Pyhton保留字相同
None = True
Output:
File "C:\Users\24163\AppData\Local\Temp/ipykernel_14004/670613282.py", line 1
None = True
^
SyntaxError: cannot assign to None
2.2.3 变量名定义技巧
- 变量名尽可能有实际意义,表征数据的某种特性
a = [17, 18, 19]
age_of_students = [17, 18, 19]
- 下划线(推荐:变量和函数名)
变量名由多个单词组成:用_连接多个单词
age_of_students = [17, 18, 19]
- 驼峰体(推荐:类名) 变量名由多个单词组成:单词首字母大写
AgeOfStudents = [17, 18, 19]
-
尽量避免用中文和拼音做变量名
-
特殊的变量:常量(不变的量,如 、e) 变量名所有字母均为大写
MAX_ITERATION = 1000
2.3 变量的赋值
2.3.1 一般赋值
- 通过等号自右向左进行赋值
x = 1+2
x
Output:
3
2.3.2 增量赋值
x = 10
x += 10
x
Output:
20
2.3.3 打包赋值
x, y = 1, 2 # 通过","隔开
print(x, y)
x, y = y, x
print(x, y)
Output:
1 2
2 1
Part3 控制流程
3.1 顺序流程
- 自上向下依次执行
【例子】实现1到5的整数求和
# res = 1+2+3+4+5
res = 0 # 赋初值
res += 1
res += 2
res += 3
res += 4
res += 5
res # 显示结果
Output:
15
3.2 循环流程——遍历循环(for)
主要形式:
-
for 元素 in 可迭代对象**:**
执行语句
注意有":"
执行过程:
- 从可迭代对象中,依次取出每一个元素,并进行相应的操作
【例子】实现1到5的整数求和
res = 0
for i in [1,2,3,4,5]: # 每次迭代,取出一个i
res += i # 对每次迭代取出的i 进行相应操作
res # 遍历结束后,执行后续语句
Output:
15
3.3 循环流程——无限循环(while)
主要形式:
- while 判断条件:
- 条件为真,执行语句
- 条件为假,while 循环结束
【例子】实现1到5的整数求和
i = 1
res = 0
while i <= 5: # 若i不大于5,则循环继续
res += i
i += 1
res # 若循环条件不成立,循环停止,执行后续语句
Output:
15
3.4 分支流程(if)
最简单的形式:
- if 判断条件:
- 条件为真,执行语句
- else:
- 条件为假,执行语句
Part4 输入输出
4.1 数据的输入
1. 外部文件导入
- 从本地硬盘、网络端读入等
- 该部分内容放在 第八章《文件、异常和模块》进行讲解
2. 程序中定义
age = 18
name = "Tom"
3. 动态交互输入 input
- 在程序运行的过程中进行输入
x = input("请输入一个数字:")
x
请输入一个数字:58
Output:
'58'
y = input("请输入一个数字:")
y
请输入一个数字:2.3
Output:
'2.3'
x + y
Output:
'582.3'
type(x)
Output:
str
可以看到,这里是字符串的拼接,input后类型也是str,因此输出的形式是’582.3’。为了转换为数字,可以采用以下方法:
4.1.1 eval() 去掉引号
Input:
x = eval(input("请输入一个数字:"))
x
请输入一个数字:58
Output:
58
Input:
y = eval(input("请输入一个数字:"))
y
请输入一个数字:2.3
Output:
2.3
Input:
x + y
Output:
60.3
4.2 数据的输出
4.2.1 存储到本地硬盘或网络端
- 该部分后面单独讲解
4.2.2 打印输出 print
- 直接打印数据
Input:
print("timerring")
Output:
timerring
Input:
print(520)
Output:
520
- 打印变量
Input:
x = 1024
print(x)
Output:
1024
- print 默认换行
Input:
print(1)
print(2)
Output:
1
2
- 如果不想换行怎么办?
- 换行控制 end=
print(123,end=" ")#也可以自定义end的内容
print(456)
Output:
123 456
- 有时候,我们需要一些复杂的输出:比如几个变量一起组合输出
下面这种方式也有缺点,无法格式化输出
Input:
PI = 3.1415926
E = 2.71828
print("PI = ", PI, "E = ", E)
PI = 3.1415926 E = 2.71828
4.2.3 格式化输出方法 format
- 基本格式:“字符{ 0 }字符{ 1 }字符”.format(v0,v1)
- 注意,这里是对应的关系
Input:
print("PI = {0},E = {1}".format(PI, E))
PI = 3.1415926,E = 2.71828
Input:
print("PI = {0},E = {0}".format(PI, E))
PI = 3.1415926,E = 3.1415926
Input:
print("PI = {1},E = {0}".format(PI, E))
PI = 2.71828,E = 3.1415926
- 默认情况下是严格地按照顺序来执行的
Input:
print("PI = {},E = {}".format(PI, E))
PI = 3.1415926,E = 2.71828
Input:
print("PI = {},E = {}".format(E, PI))
PI = 2.71828,E = 3.1415926
4.2.4 修饰性输出
4.2.4.1填充输出
Input:
# ____3.1415926_____ 进行填充
print("{0:_^20}".format(PI))#这里的0也是后面PI变量 :表示修饰输出 _表示修饰字符 ^表示居中 20表示输出的宽度
_____3.1415926______
Input:
print("{0:*<30}".format(PI))# <代表左对齐
3.1415926*********************
4.2.4.2 数字千分位分隔符
- 显示1,000,000
print("{0:,}".format(10000000))
10,000,000
- 填充必须放在前面,最后才能是 , 分隔符
print("{0:&>20,}".format(10000000))
&&&&&&&&&&10,000,000
print("{0:,&>20}".format(10000000))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-35-9f30412a92d9> in <module>
----> 1 print("{0:,&>20}".format(10000000))
ValueError: Invalid format specifier
4.2.4.3 浮点数简化输出
- 留2位小数
print("{0:.2f}".format(PI))
3.14
- 按百分数输出
print("{0:.1%}".format(0.818727))
81.9%
- 科学计数法输出
print("{0:.2e}".format(0.818727))
8.19e-01
4.2.4.4 整数的进制转换输出
- 十进制整数转二进制、unicode码、十进制、八进制、十六进制输出
"二进制{0:b},Unicode码{0:c},十进制{0:d},八进制{0:o},十六进制{0:x}".format(450)
'二进制111000010,Unicode码ǂ,十进制450,八进制702,十六进制1c2'
总结
- 格式化输出:“字符{0:修饰}字符{1:修饰}字符”.format(v0 ,v1 )
- 修饰输出方法:必须严格按照顺序来。
Part5 程序格式
5.1 行最大长度
所有行限制的最大字符数为79
5.2 缩进
- 用缩进来表示语句间的逻辑
- 在 for while if def class等 :之后下一行开始进行缩进,表明后续代码与前句之间的从属关系
- 缩进量:4字符
for i in [1, 2, 3]:
print(i)
print("打印结束")
5.3 使用空格
-
视觉上更加一目了然
-
二元运算符两边加一个空格
x = 2 # 赋值
x + = 4 # 增量
6 > 2 # 比较
- 使用不同优先级的运算符,考虑在最低优先级的运算符周围添加空格
x = x*2 - 1
z = x*x + y*y
c = (a+b) * (a-b)
- 在逗号后使用空格
x, y = 1, 2
ls = [1, 2, 3]
- 不要使用一个以上的空格
x = 2 # 空格一个就够了,不应过多
5.4 避免使用空格
- 在制定关键字参数或者默认参数值的时候,不要在=附近加上空格
def fun(n=1, m=2):
print(n, m)
小结
1、以上属于PEP8格式指南的部分内容,养成良好的编码规范利人利己
2、格式约定的目的:
- 使大量Python代码风格一致
- 提升代码可读性
3、尽信书不如无书,不应死板教条的执行格式规范
- 项目规范优先
5.5 注释
- 单行注释
- 格式:# 注释内容
a=1 # 单行注释
- 多行注释
- 格式:""“注释内容,可分行”""
"""
欢迎
关注
timerring
的
专栏
"""
Output:
'\n欢迎\n关注\ntimerring\n的\n专栏\n'
- 点赞
- 收藏
- 关注作者
评论(0)