第2章(新)Day2 - Python基础入门
2.1 课程介绍
基本语法
变量
基本数据类型
运算符
2.2 环境切换
2.3 语句分隔符
分号(可用但不推荐)、换行、缩进
2.4 注释
# 单行注释'''
多行注释
多行注释
多行注释
'''"""
多行注释
多行注释
多行注释
"""
2.5 PEP 8规范
PEP 8是Python的官方代码风格指南,旨在提供一致、易于阅读和易于维护的Python代码
PEP 8规范包括以下方面:
1、缩进:使用四个空格表示缩进
2、行长:每行代码不应超过79个字符
3、命名规范:变量名应以小写字母开头,使用下划线分隔多个单词;
类名应以大写字母开头,使用驼峰命名法
4、空格:在运算符两侧、逗号后以及冒号后应添加空格
5、注释:注释应该清晰、简洁,使用英文书写。注释应该说明代码的作用,而不是如何实现
6、函数和类:函数和类之间应该用两个空行分隔
7、导入:每个导入应该单独成行、避免使用通配符导入
8、括号:在函数调用和定义中,括号内部应该没有空格
除此之外,PEP 8还涵盖了代码布局、字符串引号、空行、文件编码等方面的规范
遵守PEP 8规范可以增加代码的可读性和可维护性,这对于团队开发、代码重构和代码维护都非常有帮助。建议Python开发者遵守这些规则,以便与其他Python开发者协作,并使代码更易于理解和维护
Pycharm代码格式化的快捷键默认为:【Ctrl + Alt + L】
2.6 变量初识
借助变量存放数据,可以避免数据反复开辟和释放内存空间,待到程序结束后统一释放
2.7 变量值多次使用
其实就是赋值,将计算结果赋给变量保存起来,方便后续继续使用
2.8 变量值修改v2
变量只能指向一个值,因此可以通过对变量重新赋值的方式来覆盖原有的值,修改为新的值
2.9 变量命名规范
1、变量名只能包含字母、数字和下划线,不能以数字开头
2、变量名不能使用保留字(如if、else、while等等)
print = 100
print("hello")# TypeError: 'int' object is not callable
3、变量名应该具有描述性,以便代码的可读性更高,例如在代码中使用的名称应该清晰、简介、有意义,避免使用缩写或单个字符
4、变量名应该遵循一定的命名,例如使用小写字母、下划线分隔单词的方式(如my_variable_name)
2.10 整型和浮点型
print(type(7))
# <class 'int'>print(type(3.14))
# <class 'float'>
2.11 布尔类型
基本数据类型之一,用于表示真和假
保留字:【True】【False】
print(type(True))
# <class 'bool'>print(type(False))
# <class 'bool'>
零值:对每一个数据类型而言,有且只有一个零值,其bool状态为False
对于整型int和浮点型float而言,零值为0
对于字符串str而言,零值为""
但对于字符串"0"而言,其并非空串,因此bool状态为True
对于列表list而言,零值为[]
对于字典dict而言,零值为{}
对于元组tuple而言,零值为()
对于集合set而言,零值为set()
bool(0)
# Falsebool(0.0)
# Falsebool("")
# Falsebool("0")
# Truebool([])
# Falsebool({})
# Falsebool(())
# Falsebool(set())
# False
2.12 创建字符串
用于表示文本数据。字符串可以看作是由一系列字符组成的序列,每个字符可以是字母、数字、符号或其他字符
在计算机程序中,字符串通常用一对单引(' ')或一对双引号(" ")
一些编程语言(python)还支持用三重引号(''' ''')、(""" """)来表示多行字符串
三引号在打印时可将变量内的换行和缩进原样输出
多行字符串在并未进行赋值变量时,即可作为注释使用
因此有一种说法是,python并不像其他语言有专门的多行注释语法(如 /* */),是通过多行字串搭配引用计数的垃圾回收机制来等效出的多行注释
字符串三个应用:展示文字、存储数据、传输字节
字符串操作
基本操作:转义符,格式化输出
序列操作:索引、切片
内置方法:upper
2.13 字符串的转义符
在python中,字符串的转义是指在字符串中使用特殊的字符序列来表示一些特殊字符。
字符串的转义符是反斜杠【\】
1、将某些普通符号给予特殊功能
【\n】换行符
2、将一些特殊功能的符号普通化
【\'】单引号
【\\】反斜杠
2.14 格式化输出
name = 'Jerry'
age = 19
height = 180print("姓名%s, 年龄%d岁, 身高%dcm" % (name, age, height))
print(f"姓名{name}, 年龄{age}, 身高{height}cm")
2.15 字符串序列操作一
序列:容器+有序;能存放更细分的类型内容,且按顺序存放
字符串属于序列类型,所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在的位置编号(称为索引)访问他们
正索引:0,1, 2,3,4,5,6
负索引:-7,-6,-5,-4,-3,-2,-1
s = "str_str_str"
使用【s[index]】可以取出对应位置的字符
使用【s[start_index : end_index]】可以取出对应的字符串切片
切片操作还有个不常用的参数,叫步长step,[start_index : end_index : step],缺省时默认为1,即正序
正序切片操作中不论index使用的是正索引还是负索引,必须start_index在左边,end_index在右边
当步长设为负数,反向切片,此时必须start_index在右边,end_index在左边
缺省start_index从头取,缺省end_index取到末尾
s[:]表示全部切片,s[::-1]表示全部倒序切片
2.16 字符串序列操作二
加号拼接,必须都是字符串类型,不能直接拼接数字类型
s1 = "hello"
s2 = "world"s = s1 + ' ' + s2
乘号复制
s = '*' * 100
内置函数len()求长,容器类型均可用
s = "hello world"
len(s)
# 11s = "你好 世界"
len(s)
# 5
内置判断 in 存在,容器类型均可用
s = "hello world""hello" in s
# True"world" in s
# True"o w" in s
# True"worlds" in s
# False
2.17 输入输出函数
输入函数input()用于从标准输入(键盘)读取一个用户输入的字符串,并将其返回
可以通过可选的提示字符串来提示用户输入
input()函数是阻塞函数,程序执行至此会阻塞等待,直至用户完成输入动作,向下继续执行
但是input读入的参数永远会被当做str类型处理
num1 = input()
num2 = input()100
200print(num1 + num2)
# 100200
print函数中,sep参数设置打印分隔符,end参数设置结尾字符
2.18 字符串内置方法一
upper()、lower() 生成新值 不影响原值
startswith()、endwith() 判断是否以参数字符串开头、结束
2.19 字符串内置方法二
isdigit()判断是否为纯数字字符串
strip()生成新的字符串,去除字符串首尾两端的空格和换行符
2.20 字符串的内置方法三
split()将字符串按分隔符拆分至列表
join()将列表内的字符串使用连接符拼接
find()查找目标字符串在原字符串的开始位置,若找不到则返回-1
index()查找目标字符串在原字符串的开始位置,若找不到则抛出异常
count()查找目标字符串在原字符串中的出现次数
replace()生成新的字符串,把原字符串中的目标字符串替换成新的值,可以指明替换次数
2.21 运算符一
求余运算符 %
自加运算符 +=
自减运算符 -=
2.22 运算符二
逻辑运算符 and or not