Python基础(一)| Python的基本语法

⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。

本文已收录于Python基础系列专栏: Python基础系列教程 欢迎订阅,持续更新。

本文目录

  • Python基础(一)| Python的基本语法
  • Part1 数据类型
    • 1.1 基本类型:数字、字符串、布尔
      • 1.1.1 数字类型
      • 1.1.2 字符串类型
      • 1.1.3 布尔类型
    • 1.2 组合类型:列表、元组、字典、集合
      • 1.2.1 列表
      • 1.2.2 元组
      • 1.2.3 字典
      • 1.2.4 集合
  • Part2 变量
    • 2.1 变量的概念
    • 2.2 变量的命名
      • 2.2.1 哪些可以用来做变量名?
      • 2.2.2 哪些情况不被允许?
      • 2.2.3 变量名定义技巧
    • 2.3 变量的赋值
      • 2.3.1 一般赋值
      • 2.3.2 增量赋值
      • 2.3.3 打包赋值
  • Part3 控制流程
    • 3.1 顺序流程
    • 3.2 循环流程——遍历循环(for)
    • 3.3 循环流程——无限循环(while)
    • 3.4 分支流程(if)
  • Part4 输入输出
    • 4.1 数据的输入
      • 4.1.1 eval() 去掉引号
    • 4.2 数据的输出
      • 4.2.1 存储到本地硬盘或网络端
      • 4.2.2 打印输出 print
      • 4.2.3 格式化输出方法 format
      • 4.2.4 修饰性输出
        • 4.2.4.1填充输出
        • 4.2.4.2 数字千分位分隔符
        • 4.2.4.3 浮点数简化输出
        • 4.2.4.4 整数的进制转换输出
    • 总结
  • Part5 程序格式
    • 5.1 行最大长度
    • 5.2 缩进
    • 5.3 使用空格
    • 5.4 避免使用空格
    • 小结
    • 5.5 注释

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 < 1y

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= Truepython_is_第1= False

2.2.2 哪些情况不被允许?

  • 首字符不允许为数字
1_fruit = "apple"

Output:

  File "", line 1    1_fruit = "apple"     ^SyntaxError: invalid token
  • 变量名中间不能有空格
my fruit = "apple"

Output:

  File "", 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]
  • 尽量避免用中文和拼音做变量名

  • 特殊的变量:常量(不变的量,如 π \pi π、e) 变量名所有字母均为大写

MAX_ITERATION = 1000

2.3 变量的赋值

2.3.1 一般赋值

  • 通过等号自右向左进行赋值
x = 1+2x

Output:

3

2.3.2 增量赋值

x = 10x += 10x

Output:

20

2.3.3 打包赋值

x, y = 1, 2 # 通过","隔开print(x, y)x, y = y, xprint(x, y)

Output:

1 22 1

Part3 控制流程

3.1 顺序流程

  • 自上向下依次执行

【例子】实现1到5的整数求和

# res = 1+2+3+4+5 res = 0    # 赋初值res += 1res += 2res += 3res += 4res += 5res     # 显示结果

Output:

15

3.2 循环流程——遍历循环(for)

主要形式:

  • for 元素 in 可迭代对象**:**

  执行语句

注意有”:”

执行过程:

  • 从可迭代对象中,依次取出每一个元素,并进行相应的操作

【例子】实现1到5的整数求和

res = 0for i in [1,2,3,4,5]:    # 每次迭代,取出一个i    res += i               # 对每次迭代取出的i 进行相应操作   res                      # 遍历结束后,执行后续语句

Output:

15

3.3 循环流程——无限循环(while)

主要形式:

  • while 判断条件:
  •   条件为真,执行语句
  • 条件为假,while 循环结束

【例子】实现1到5的整数求和

i = 1res = 0while i <= 5:   # 若i不大于5,则循环继续    res += i    i += 1res           # 若循环条件不成立,循环停止,执行后续语句

Output:

15

3.4 分支流程(if)

最简单的形式:

  • if 判断条件:
  •   条件为真,执行语句
  • else:
  •   条件为假,执行语句

Part4 输入输出

4.1 数据的输入

1. 外部文件导入

  • 从本地硬盘、网络端读入等
  • 该部分内容放在 第八章《文件、异常和模块》进行讲解

2. 程序中定义

age = 18name = "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 = 1024print(x)

Output:

1024
  • print 默认换行

Input:

print(1)print(2)

Output:

12
  • 如果不想换行怎么办?
  • 换行控制 end=
print(123,end=" ")#也可以自定义end的内容print(456)

Output:

123 456
  • 有时候,我们需要一些复杂的输出:比如几个变量一起组合输出
    下面这种方式也有缺点,无法格式化输出

Input:

PI = 3.1415926E = 2.71828print("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) in ----> 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 - 1z = x*x + y*yc = (a+b) * (a-b)
  • 在逗号后使用空格
x, y = 1, 2ls = [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'