Python期末复习笔记(上)

目录

*一、Python概述(简单了解)

Python语言的特点

二、Python基础

1.良好的代码格式

(1)注释

(2)缩进

(3)语句换行

(4)Python 代码编写规范

2.标识符

3.变量和数据类型

(1)变量

(2)数据类型

(3)变量的输入和输出

4.数字类型

(1)整型

(2)浮点型

(3)复数类型

(4)布尔类型

(5)数字类型的转换

5.运算符

(1)算术运算符

(2)比较运算符

(3)逻辑运算符

(4)成员运算符

(5)位运算符

​编辑

(6)三目运算符

(7)运算符优先级

三、流程控制

1.条件语句

(1)if-elif-else语句

(2)if的嵌套

(3)pass语句

(4)assert语句

2.循环语句

(1)while语句(条件循环)

(2)for语句(遍历循环)

(3)break语句(跳转语句)

(4)continue语句

四、字符串

1.小知识

2.格式化字符串

(1)使用%格式化字符串

(2)format格式化字符串

(3)使用f-string格式化字符串

3.字符串的常见操作

(1)字符串的查找与替换

(2)统计字符串出现的次数

(3)检测字符串是否以某子串开头/结尾

(4)字符串的分隔与拼接

(5)删除字符串的指定字符

(6)字符串大小写转换

(7)字符串对齐

(8)获取字符串长度或字节数

(9)字符串截取


*一、Python概述(简单了解)

Python语言的特点

简洁。Python代码的行数往往只有C、C++、Java代码数量的1/5~1/3
语法优美。Python语言是高级语言,它的代码接近人类语言,只要掌握由英语单词表示的助记符,就能大致读懂Python代码
简单易学。Python是一门简单易学的编程语言,它使编程人员更注重解决问题,而非语言本身的语法和结构
开源。Python是FLOSS(自由/开放源码软件)之一,用户可以自由地下载、拷贝、阅读、修改代码
可移植。Python语言编写的程序可以不加修改地在任何平台中运行。
扩展性良好。Python不仅可以引入.py文件,还可以通过接口和库函数调用由其它高级语言(如C语言、C++、Java等)编写的代码
类库丰富。世界各地的程序员通过开源社区又贡献了十几万个几乎覆盖各个应用领域的第三方函数库
通用灵活。Python是一门通用编程语言,可被用于科学计算、数据处理、游戏开发、人工智能、机器学习等各个领域
模式多样。Python既支持面向对象编程,又支持面向过程编程
良好的中文支持。Python 3.x解释器采用UTF-8编码表达所有字符信息,编码支持英文、中文、韩文、法文等各类语言

二、Python基础

1.良好的代码格式

(1)注释

#单行注释

三个双引号"""或三个单引号'''多行注释,当然多行注释也可以用多行的#来注释

注意:①python的多行注释不支持嵌套,所以下面的写法是错误的

"""
    外层注释
    """
        内层注释
    """
"""

不管是多行注释还是单行注释,当注释符作为字符串的一部分出现时,就不能再将它们视为注释标记,而应该看做正常代码的一部分,例如: print("#是单行注释的开始")

(2)缩进

Python用缩进来区分代码层次

(3)语句换行

Python官方建议每行代码不超过79个字符,若代码过长应该换行。Python会将圆括号、中括号和大括号中的行进行隐式连接,我们可以根据这个特点实现过长语句的换行显示。

string=(“Python是一种面向对象、解释型计算机程序设计语言,”

      “由Guido van Rossum于1989年底发明。”

        “第一个公开发行版发行于1991年,”     

      “源代码同样遵循 GPL(GNU General Public License)协议。”)

(4)Python 代码编写规范

①每个 import 语句只导入一个模块,尽量避免一次导入多个模块

不要在行尾添加分号,也不要用分号将两条命令放在同一行

建议每行不超过 79 个字符,如果超过,建议使用小括号将多行内容隐式的连接起来,而不推荐使用反斜杠 \ 进行连接。例如,如果一个字符串文本无法实现一行完全显示,则可以使用小括号将其分开显示

2.标识符

标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。

命名规则:

•标识符由且仅由字母、下划线和数字组成,且数字不能开头。
•Python中的标识符是区分大小写的。例如,andy和Andy是不同的标识符。

•标识符不能和 Python 中的保留字(关键字)相同。

3.变量和数据类型

(1)变量

标识内存单元的标识符又称为变量名,Python通过赋值运算符“=”将内存单元中存储的数值与变量名建立联系,即定义变量,具体语法格式如下:变量 = 值

(2)数据类型

根据数据存储形式的不同,数据类型分为基础的数字类型和比较复杂的组合类型,其中数字类型又分为整型浮点型布尔类型复数类型;组合类型分为字符串列表元组字典等。

类型转换:可以用str() 函数将整数类型转换成字符串类型,也可以用int() 函数将字符串类型转换成整数类型

(3)变量的输入和输出

输入:input([prompt]),prompt表示函数的参数,用于设置接收用户输入时的提示信息。

输出:print(*objects, sep=' ', end='\n', file=sys.stdout)

objects:表示输出的对象。输出多个对象时,对象之间需要用分隔符分隔。
sep:用于设定分隔符,默认使用空格作为分隔。
end:用于设定输出以什么结尾,默认值为换行符\n。
file:表示数据输出的文件对象。

4.数字类型

(1)整型

为了方便使用各进制的数据,Python中内置了用于转换数据进制的函数:bin()、oct()、int()、hex(),关于这些函数的功能说明如下。

(2)浮点型

注意:

科学计数法会把一个数表示成a与10的n次幂相乘的形式,数学中科学计数法的格式为:

a×10n (1≤|a|<10,n∈N)

Python程序中省略“×”,使用字母e或E代表底数10,示例如下:

-3.14e2  # 即-314
3.14e-3  # 即0.00314

只要写成指数形式就是小数,即使它的最终值看起来像一个整数。例如 14E3 等价于 14000,但 14E3 是一个小数。

(3)复数类型

复数由实部和虚部构成,它的一般形式为:real+imagj,其中real为实部,imag为虚部,j为虚部单位。示例如下:

complex_one = 1 + 2j  # 实部为1,虚部为2
complex_two = 2j  # 实部为0,虚部为2

通过real和imag属性可以获取复数的实部部分和虚部部分。

(4)布尔类型

若数据符合以下任一条件,其布尔值均为False。

值为None或False的常量

任何数字类型的0:0、0.0、0j

空组合数据类型:''、()、[]、set()、{}

(5)数字类型的转换

int()、float()、complex()可进行强制类型转换

需要注意的是浮点型数据转换为整型数据后只保留整数部分

另外需要注意的是

complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0

complex(x, y) 将 x y 转换到一个复数,实数部分为 x,虚数部分为 y

5.运算符

根据操作数数量的不同,运算符可分为单目运算符、双目运算符、三目运算符;根据运算符的功能,运算符可分为算术运算符、赋值运算符、比较运算符、逻辑运算符和成员运算符。

(1)算术运算符

注意/除和//整除

当+用于字符串时,它还有拼接字符串(将两个字符串连接为一个)的作用;当*用于字符串时,它可以用来重复字符串,也即将 n 个同样的字符串连接起来

在混合运算时,Python会强制将数值的类型进行临时类型转换,这些转换遵循如下原则:

整型与浮点型进行混合运算时,将整型转化为浮点型。
其他类型与复数运算时,将其他类型转换为复数类型。
将任意两个数相除 / ,结果总是浮点数,即便这两个数都是整数且能整除。
当有小数参与运算时, // 结果才是小数,否则就是整数
只有当第二个数字是负数时,求余的结果才是负数。%两边的数字都是整数时,求余的结果也是整数;但是只要有一个数字是小数,求余的结果就是小数。

(2)赋值运算符

Python3.8中新增了一个赋值运算符——海象运算符“:=”,该运算符用于在表达式内部为变量赋值

num_one = 1
# 使用海象运算符为num_two赋值
result = num_one + (num_two:=2)
print(result)

(3)比较运算符

is 判断两个变量所引用的对象是否相同,如果相同则返回 True,否则返回 False

is not 判断两个变量所引用的对象是否不相同,如果不相同则返回 True,否则返回 False。

注意:==两个等号才是判断相等

== 和 is 的区别

== 用来比较两个变量的值是否相等,而 is 则用来比对两个变量引用的是否是同一个对象

==也就是判断它的值,is是判断变量的内存地址

(4)逻辑运算符

and 与

or 或

not 非

实际上,逻辑运算符可以用来操作任何类型的表达式

 Python 中,and 和 or 不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到最终结果。

and 和 or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最终结果。

print(30 or 10)
print(0 and 10)
print(0 or 10)
print(1 or 10)
print('-'*40)
url = "https://www.baidu.com/"
print( False and print(url))
print('-'*40)
print( True and print(url))
print('-'*40)
print( False or print(url))
print('-'*40)
print( True or print(url))
print('-'*40)

结果为:

30
0
10
1
----------------------------------------
False
----------------------------------------
https://www.baidu.com/
None
----------------------------------------
https://www.baidu.com/
None
----------------------------------------
True
---------------------------------------- 

(5)成员运算符

成员运算符in和not in用于测试给定数据是否存在于序列(如列表、字符串)中,关于它们的介绍如下:

in:如果指定元素在序列中返回True,否则返回False。

        not in:如果指定元素不在序列中返回True,否则返回False。

(6)位运算符

原码、反码与补码

最后计算十进制数要将补码转为原码再算 !!!!!!

(7)三目运算符

(8)运算符优先级

三、流程控制

三个结构:顺序结构、选择(分支)结构和循环结构

1.条件语句

(1)if-elif-else语句

语法格式如下:

if 判断条件1:

    代码段1

elif 判断条件2:

    代码段2

elif 判断条件3:

    代码段3

...

else:

    代码段n

(2)if的嵌套

格式如下:

if 表示式 1
    if 表达式 2
        代码块 1
    else
        代码块 2
else
    if 表达式 3
        代码块 3
    else
        代码块 4

(3)pass语句

在实际开发中,有时候我们会先搭建起程序的整体逻辑结构,但是暂时不去实现某些细节,而是在这些地方加一些注释,方面以后再添加代码

(4)assert语句

assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行;反之,Python 解释器会报 AssertionError 错误。

assert 语句的语法结构为:

assert 表达式

转换为if语句就是:

if 表达式==True:
    程序继续执行
else:
    程序报 AssertionError 错误

代码实例:

mathmark = int(input())
#断言数学考试分数是否位于正常范围内
assert 0 <= mathmark <= 100
#只有当 mathmark 位于 [0,100]范围内,程序才会继续执行
print("数学考试分数为:",mathmark)

2.循环语句

(1)while语句(条件循环)

语法结构:

while 条件表达式:

    代码块

(2)for语句(遍历循环)

语法结构:

for 迭代变量 in 字符串|列表|元组|字典|集合:

    代码块

无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码

(3)break语句(跳转语句)

break语句用于结束循环,若循环中使用了break语句,程序执行到break语句时会结束循环;若循环嵌套使用了break语句,程序执行到break语句时会结束本层循环。

for 循环后也可以配备一个 else 语句。这种情况下,如果使用 break 语句跳出循环体,不会执行 else 中包含的代码。 

对于嵌套的循环结构来说,break 语句只会终止所在循环体的执行,而不会作用于所有的循环体

(4)continue语句

continue语句用于在满足条件的情况下跳出本次循环,该语句通常也与if语句配合使用。

注意:是本次

代码实例:

for word in "Python":
    if (word == 'o'):
        continue
    print(word, end="  ")

结果为:P y t h n

四、字符串

1.小知识

字符串前加r,表示原始字符串,不需要转义\,例如:

str1 = r”Let\'s learn Python”
print(str1)

结果为Let\'s learn Python

多学一招:\n换行          \t横向制表符  

\r回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。即如下:

>>> print("Hello\rWorld!") 

World!

>>> print('google runoob taobao\r123456')

123456 runoob taobao

2.格式化字符串

(1)使用%格式化字符串

格式:format(字符串) % values(真实数据)

例如:

age = 20
print("My age is %d" % age)

不同的占位符为不同类型的变量预留位置,常见的占位符如下所示。

%r 和 %s 的区别:

(2)format格式化字符串

格式:str.format(values)

str.format() 方法通过字符串中的花括号 {} 来识别替换字段 replacement field,从而完成字符串的格式化。替换字段由字段名 field name 和转换字段 conversion field 以及格式说明符 format specifier 组成,一般形式为{字段名!转换字段:格式说明符}

字段名分为简单字段名 simple field name 和复合字段名 compound field name。而转换字段和格式说明符都是可选的。

①简单字段名

#省略不写 {}
print('我叫{},今年{}岁。'.format('小明', 18))
#数字 {十进制非负整数}
print('身高{0},家住{1}。'.format(1.8, '铜锣湾'))
#变量名 {合法的Python标识符}
print('我大哥是{name},今年{age}岁。'.format(name='阿飞', age=20))
#混合
print('这是一个关于{0}、{1}和{girl}的故事。'.format( '小明', '阿飞', girl='阿香’))

str.format() 方法还可以使用 *元组 和 **字典 的形式传参,两者可以混合使用。

# 使用元组传参
infos = (‘钢铁侠’, 66, ‘小辣椒’)
print(‘我是{}, 身价{}亿。’.format(*infos))
print(‘我是{2},身价{1}亿。’.format(*infos))
#使用字典传参
venom = {‘name’: ’毒液’, ‘weakness’: 火}
print(‘我是{name}, 我怕{weakness}’.format(**venom))

##同时使用元组和字典传参
hulk = (‘绿巨人’, ‘拳头’)
captain = {‘name’: ‘美国队长’, ‘weapon’: ‘盾’}
print(‘我是{},我怕{weapon}。’.format(*hulk, **captain)) #{}中不写,默认为第一个
print(‘我是{name},我怕{1}。’.format(*hulk, **captain))

②复合字段名

. 点号的使用

[] 方括号的使用

#用列表传递位置参数
infos = ['阿星', 9527]
food = ['霸王花', '爆米花']
print('我叫{0[0]},警号{0[1]},爱吃{1[0]}。'.format(infos, food))

#我叫阿星,警号9527,爱吃霸王花。

#用元组传递位置参数
food = ('僵尸', '脑子')
print('我叫{0[0]},年龄{1},爱吃{0[1]}。'.format(food, 66))

#我叫僵尸,年龄66,爱吃脑子。

③转换字段

转换字段 conversion field 的取值有三种,前面要加 !

•s:传递参数之前先对参数调用 str()
•r:传递参数之前先对参数调用 repr()
•a:传递参数之前先对参数调用 ascii()
#print('I am {!s}!'.format('Bruce Lee 李小龙’)) 
#print('I am {!r}!'.format('Bruce Lee 李小龙’)) 
#print('I am {!a}!'.format('Bruce Lee 李小龙'))

#I am Bruce Lee 李小龙!
#I am 'Bruce Lee 李小龙'!
#I am 'Bruce Lee \u674e\u5c0f\u9f99'!

④格式说明符

[[填充]对齐方式][正负号][#][0][宽度][分组选项][.精度][类型码]

(3)使用f-string格式化字符串

f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以f或F引领字符串,在字符串中使用“{变量名}”标明被替换的真实数据和其所在位置。

first_name = "Hua"
last_name = "Li"
full_name = f"{first_name} {last_name }"
print(f"Hello, {full_name}")

#Hello, Hua Li

3.字符串的常见操作

(1)字符串的查找与替换

查找:find()方法,该方法可查找字符串中是否包含子串,若包含则返回子串首次出现的位置,否则返回-1。格式:str.find(sub, start, end),索引含头不含尾

sub:指定要查找的子串。
start:开始索引,默认为0。
end:结束索引,默认为字符串的长度。

替换:replace()方法,该方法可将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串。格式:str.replace(old, new, count)

old:被替换的旧子串。
new:替换旧子串的新子串。
count:表示替换旧字符串的次数,默认全部替换。

(2)统计字符串出现的次数

count()方法,该方法可检索指定字符串在另一字符串中出现的次数。格式:str.count(sub,start,end)

sub:表示要检索的字符串;

start:指定检索的起始位置,也就是从什么位置开始检测。如果不指定,默认从头开始检索;

end:指定检索的终止位置,如果不指定,则表示一直检索到结尾。

(3)检测字符串是否以某子串开头/结尾

startswith() 方法,用于检索字符串是否以指定字符串开头,如果是,返回 True;反之,返回 False。格式:str.startswith(sub,start,end)

endswith() 方法用于检索字符串是否以指定字符串结尾,如果是,则返回 True;反之,则返回 False。格式:str.endswith(sub,start,end)

(4)字符串的分隔与拼接

split()方法,可以按照指定分隔符对字符串进行分割,该方法会返回由分割后的子串组成的列表

格式:str.split(sep=None, maxsplit=-1)

sep:分隔符,默认为空字符。

maxsplit:最大分割次数,默认值为-1,表示不限制分割次数。

join()方法,使用指定的字符连接字符串并生成一个新的字符串。格式:str.join(iterable)

iterable:做合并操作的源字符串数据,允许以字符串、列表、元组等形式提供。
str:用于指定合并时的分隔符

(5)删除字符串的指定字符

字符串中可能会包含一些无用的字符(如空格),在处理字符串之前往往需要先删除这些无用的字符。Python中的strip()、lstrip()和rstrip()方法可以删除字符串中的指定字符。

默认会删除空格以及制表符(\t)、回车符(\r)、换行符(\n)等特殊字符

str :被操作字符串

chars:指定字符串

str字符串本身不会发生改变,删除得到的字符串是方法的返回值

(6)字符串大小写转换

Python中支持字母大小写转换的方法有upper()、lower()、capitalize()和title()。如果转换成功,则返回新字符串;反之,则返回原字符串。

str = "i like Python“
str.upper()   
str.lower()
str.capitalize()
str.title()

 结果为:

'I LIKE PYTHON’

'i like python'

'I like python’

‘I Like Python' 

(7)字符串对齐

Python提供了center()、ljust()、rjust()这3个方法来设置字符串的对齐方式。

•str:表示要进行填充的字符串;
•width:表示包括 str 本身长度在内,字符串要占的总长度;
•fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。

原字符串不会发生改变,用的是返回值

(8)获取字符串长度或字节数

获取字符串长度:len(string)

获取字符串字节数:len(string.encode())

在 Python 中,不同的字符所占的字节数不同,数字、英文字母、小数点、下划线以及空格,各占一个字节,而一个汉字可能占 2~4 个字节,具体占多少个,取决于采用的编码方式。例如,汉字在 GBK/GB2312 编码中占用 2 个字节,而在 UTF-8 编码中一般占用 3 个字节。

(9)字符串截取

获取单个字符:

strname[index]

strname 表示字符串名字,index 表示索引值。

获取多个字符(字符串截去/字符串切片):

使用[ ]除了可以获取单个字符外,还可以指定一个范围来获取多个字符,也就是一个子串或者片段,具体格式为:

strname[start : end : step]

•strname:要截取的字符串;
•start:表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取;
•end:表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度;
•step:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。

  • 42
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值