IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【Python 语言基础】第二章 Python 基础语法 -> 正文阅读

[Python知识库]【Python 语言基础】第二章 Python 基础语法

第1节 关键字

关键字是在 Python 中,被赋予了特殊含义的英文单词。使用帮助系统可以查看 Python 中的所有关键字,除 True、False、None 外,其他关键字都是小写。

在这里插入图片描述

第2节 标识符

标识符是标识变量、函数、类型、模块等名称的符号。Python中的标识符有如下规则:

  1. 严格区分大小写;
  2. 可以使用字母、数字、下划线;
  3. 不能以数字开头;
  4. 不能使用关键字;
  5. 以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法。比如:__init__是类的构造函数。

Python命名规范

包、模块、函数、变量:全小写字母,多个单词用下划线分隔;
类名:大驼峰命名;
常量名:全大写,多个单词用下划线分隔。

第3节 注释

  1. 行注释 #
  2. 块注释 '''或者"""
#!/usr/bin/env python3
告诉Linux操作系统,这是一个Python可执行程序

# -*- coding: utf-8 -*-
告诉Python解释器,按照 utf-8 编码读取源代码

第4节 常量和变量

常量

Python 不支持常量,即没有语法规则限制改变一个常量的值。
我们只能约定常量的命名规则,在程序的逻辑上不对常量的值进行修改。

变量

Python中,变量也称为“对象的引用”。因为,变量存储的就是对象的地址。变量通过地址引用了“对象”。

变量位于:栈内存
对象位于:堆内存

1. 变量声明语法

变量的声明和赋值用于将一个变量绑定到一个对象上,语法:变量名 = 表达式
变量使用前必须被初始化。

2. 变量赋值方法

简单赋值

常用赋值方法,语法:变量名=值

链式赋值

链式赋值用于将同一个对象赋值给多个变量。语法:变量1 = 变量2 = 值,相当于 变量1 = 值; 变量2 = 值

序列解包赋值

系列解包赋值用于将对应个数的值按顺序赋给相同个数的变量。语法:变量1, 变量2, 变量3 = 值1, 值2, 值3,相当于 变量1 = 值1; 变量2 = 值2; 变量3 = 值3

系列解包赋值可用于变量交换。

3. 删除变量

可以使用 del 删除不再使用的变量,语法:del 变量名
如果对象没有被任何变量引用,就会被垃圾回收器回收,清空内存空间。

第5节 数据类型

一、数字类型

1.整型(int)

Python 3 中,整型的位数没有限制。

二进制: 0b 或 0B 开头
八进制: 0o 或 0O 开头
十六进制: 0x 或 0X 开头

2.浮点型(float)

浮点数用 a * 10b 形式的科学计数法表示,比如:3.14,表示为 314E-2。浮点数在内存中也是按照科学计数法存储的。

?可以使用 round( ) 将浮点数进行四舍五入。不会改变原有值,而是产生新的值。

3.布尔型(bool)

布尔型的 True、False,本质上就是 1 和 0,他们可以和数字运算。

二、序列类型

字符串(str)

列表(list)

元组(tuple)

字典(dict)

集合(set)

三、类型转换

1. 自动类型转换

整数和浮点型混合运算时,表达式自动转型成浮点型。如:2 + 8.0 = 10.0;
?整数和布尔值混合运算时,会自动将布尔值转换为对应的数字,True 转换为 1,False 转换为 0。

2. 强制类型转换

方法作用整型浮点型布尔型字符串
int( )转换为整数/直接取整数部分True 转为 1
False 转为 0
纯数字可以转
有字母会报错
float( )转换为浮点数转换为 整数.0/True 转为 1.0
False 转为 0.0
纯数字可以转
有字母会报错
bool( )转换为布尔值0 转换为 False
其他转换为 True
0.0 转换为 False
其他转换为 True
/None、空白字符串转换为 False
其他转换为 True
str( )转换为字符串转换为字面量字符串转换为字面量字符串转换为字面量字符串/

第6节 运算符

1. 算术运算符

运算符作用示例结果
+加法,可用于 数字、字符串、列表、元组等3 + 25
-减法,可用于 数字、字符串、列表、元组等10 - 28
*乘法3 * 515
/浮点数除法7 / 41.75
//整数除法7 // 41
%模(取余)7 % 43
**2 ** 38

使用 divmod(被除数, 除数) 可以同时得到商和余数,返回的是一个元组。

2. 赋值运算符

运算符举例等价于
=a = 2
+=a += 2a = a + 2
-=a -= 2a = a - 2
*=a *= 2a = a * 2
/=a /= 2a = a / 2
//=a //= 2a = a // 2
%=a %= 2a = a % 2
**=a **= 2a = a ** 2

3. 比较运算符

运算符作用示例结果
==等于15 == 30False
!=不等于15 != 30True
>大于15 > 30False
<小于15 < 30True
>=大于等于15 >= 30False
<=小于等于15 <= 30True

4. 逻辑运算符

运算符作用格式说明
andx and yx 为 true,返回 y 的值
x 为 false,不计算 y 的值,直接返回 false
orx or yx 为 true,不计算 y 的值,直接返回 true
x 为 false,返回 y 的值
notnot xx 为 true,返回 false
x 为 false,返回 true

5. 位运算符

运算符作用
&按位与
|按位或
~按位非
^按位异或
<<左移,高位溢出,低位补0
>>右移,符号位不变,低位溢出,高位补符号位

Python 中,不支持自增(++)和自减(--)运算符。

6. 同一运算符

同一运算符用于比较两个对象的存储地址是否相同。

运算符作用
is判断两个标识符是否引用同一对象
is not判断两个标识符是否引用不同对象

is 与 == 的区别:

is 用于判断两个变量引用的对象是否为同一个,即比较对象在内存中的存储地址;

== 用于判断两个变量引用的对象的值是否相等,默认调用对象的 __eq__() 方法。

注:变量和 None 比较时,应该使用 is 。

整数缓存问题

交互模式下,Python 对 [ -5, 256 ] 之间的整数进行了缓存,所以在这个范围内的整数使用 is 和 == 判断,结果都为 True。

在PyCharm中,或将语句保存为文件时,Python 缓存的整数范围是 [ -5, 任意正整数 ]

7. 成员运算符

成员运算符用于判定元素是否在序列中存在。

运算符作用
in判断值是否存在于序列中
not in判断值是否不存在与序列中

8. 运算符优先级

位运算 和 算术运算 > 比较运算符 > 赋值运算符 > 逻辑运算符;
建议使用小括号进行组织,避免运算符优先级导致的问题。

第7节 流程控制语句

一、条件语句

1. 单分支

if 条件表达式:
    语句块

num = 10
if num >= 5:
    print("greater than 5")

在这里插入图片描述
2. 双分支

if 条件表达式:
    语句块1
else:
    语句块2
    
num = 10
if num >= 5:
    print("greater than 5")
else:
    print("less than 5")

在这里插入图片描述
三元运算符

双分支都有返回值时,可以使用三元运算符代替。

条件为真的值 if 条件表达式 else 条件为假的值

3. 多分支

if 条件表达式1:
    语句块1
elif 条件表达式2:
    语句块2
elif 条件表达式3:
    语句块3
else:
    语句块4

在这里插入图片描述

条件表达式的值为 False 的情况
False、0、0.0、空字符串、空值 None、空序列对象(空列表、空元组、空字典、空集合)、空 range 对象、空迭代器对象。
其余情况,均为True。

在 Python 中,条件表达式中不能有赋值运算符 “=”。

二、循环语句
在这里插入图片描述
1. while 循环

while 条件表达式:
    循环体语句

循环体中必须有改变循环变量的操作,不然会形成死循环。

2. for 循环

for 变量 in 可迭代对象:
    循环体语句

for 循环通常用于可迭代对象的遍历,可迭代对象包括:

  • 序列(字符串、列表、元组、字典、集合);
  • 迭代器对象(iterator);
  • 生成器对象(generator);
  • 打开的文件对象。
# 打印九九乘法表
for x in range(1, 10):
    for y in range(x, 10):
        separator = '\n' if y == 9 else '\t'
        print('{0} × {1} = {2}'.format(x, y, x * y), end=separator)

3. 其他语句

break 语句

break 语句用于 while 和 for 循环,用来结束整个循环。当有嵌套循环时,break 语句只跳出最近一层循环。

continue 语句

continue 语句用于结束本次循环,继续下一次。当有嵌套循环时,continue 也用于最近一层循环。

else 语句

while、for 循环可以带一个可选的 else 语句,如果循环被 break 结束,则不会执行 else 语句,否则会执行。用于循环正常结束应该执行的动作,循环被 break 打断则不执行的动作。

while 条件表达式:
    循环体语句
else:
    语句块
    
-------------------------------

for 变量 in 可迭代对象:
    循环体语句
else:
    语句块
# 录入5名员工薪资,全部录入完成后,提示“您已全部录入5名员工薪资”,最后打印录入的薪资和平均薪资。
emp_num = 0
sum_salary = 0
salaries = []

for i in range(5):
    input_str = input('请录入5名员工薪资(按 Q 中途结束)\n')
    if input_str.upper() == 'Q':
        break

    salary = float(input_str)

    if salary < 0:
        continue

    emp_num += 1
    sum_salary += salary
    salaries.append(salary)
else:
    print('您已全部录入5名员工薪资')

print('录入薪资:', salaries)
print(f'平均薪资:{sum_salary / emp_num}')

4. 循环代码的优化

  1. 尽量减少循环内不必要的计算;
  2. 尽量使用局部变量,而不是全局变量;
  3. 连接多个字符串,使用 join 而不是 +;
  4. 列表元素的插入和删除,尽量在尾部操作。
# 循环性能测试
import time

start1 = time.time()
for x in range(10000):
    result = []
    for y in range(10000):
        result.append(x * 100 + y * 100)
end1 = time.time()
print(f'耗时: {end1 - start1}')

start2 = time.time()
for i in range(10000):
    result = []
    num = i * 100
    for j in range(10000):
        result.append(num + j * 100)
end2 = time.time()
print(f'耗时: {end2 - start2}')

---------------------- 执行结果 --------------------
耗时: 20.11190366744995
耗时: 16.96176505088806

5. zip( ) 并行遍历

可以使用 zip( ) 对多个序列并行遍历,zip( ) 在最短序列用完时停止。

names = ('张三', '李四', '王五', '赵六')
ages = (18, 26, 22, 31)
jobs = ('老师', '程序员', '公务员')

for name, age, job in zip(names, ages, jobs):
    print(f'{name}--{age}--{job}')

# 等价于
for i in range(len(jobs)):
    print(f'{names[i]}--{ages[i]}--{jobs[i]}')

--------------------- 执行结果 ---------------------
张三--18--老师
李四--26--程序员
王五--22--公务员
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:47:28  更:2022-02-06 13:49:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/24 11:31:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计