提示:文章写完后
文章目录- 前言
- 一、基础常识
- 1.注释
- 2.变量
- 3.缩进
- 4.数字类型
- 5.输入输出函数
- 6.模块导入
- 7.del和垃圾回收
- 8.条件组合
- 二、组合数据类型
- 1.字符串
- 2.列表
- 三、控制结构
- 1.顺序结构
- 2.分支结构
- 3.循环结构
- 总结
前言
提示:以下是本篇文章正文内容
一、基础常识 1.注释注释是代码中的辅助性文字,会被解释器过滤掉,不被 计算机执行。注释一般用于在代码中标明作者和作者的版权信息,或者解释代码原理及用途,或者通过注释单行代码辅助程序。
单行注释:以#开头,本行#之后的内容都为注释
多行注释:以一对三引号’’’ ‘’’ 或""" “”" 开头和结尾的内容
变量是保存和表示数据值的占位符,采用标识符来表示,关联标识符的过程叫做命名;其值可以通过赋值符(=)向变量复制或者修改值
变量的命名规则:允许采用大小写,数字,下划线(_)和中文等字符及其组合给变量命名。
Python里面可以支持中文变量,不推荐使用
注:标识符对大小写敏感,首字母不能是数字,不能与保留字相同,中间不能出现空格
保留字:编程语言内部定义并保留使用的标识符
表达式:产生或计算新数据的代码片段称为表达式,一般由数据和操作数构成
变量的赋值:
< 变量> = < 表达式>
< 变量1> … < 变量N> = < 表达式1>…< 表达式2>
交换x,y的值
x, y = y ,x
在Python中可以连续赋值
x=y=z=1 / x = y = z+1 / x=5;y=5;z=5
但是, x = (y=z+1)是非法的,x被赋值 y = z + 1 ,它并不返回任何值,所以这是一个错误的赋值语句
Python中的变量并不直接存储值, 而是存储了值的内存地址或者引用, 这也是变量类型随时可以改变的原因
在Python中,允许多个变量指向同一个值
x = 3 id(x) # 1786684560 y = x id(y) # 1786684560 x += 6 id(x) #1786684752 id(y) # 1786684560
采用的是基于值的内存管理方式, 也就是地址。x, y 相当于一个标签,指向地址的。id()函数用来查看对象的内存地址
注:不需要事先声明变量名及其类型,直接赋值即可创建各种类型的
3.缩进Python语言采用严格的“缩进”来表明程序的格式框架。缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关系
1个缩进 = 4个空格 =1个TAB
缩进是Python语言中表明程序框架的唯一手段,当表达分支、循环、函数、类等程序含义时,在if、while、for、def、class等保留字所在完整语句后通过英文冒号(:)结尾并在之后进行缩进,表明后续代码与紧邻无缩进语句的所属关系
4.数字类型(1)整型:1, 31
(2)布尔型:整型的子类, True和False对应整型的1和0
(3)浮点型: 1.23, 3.14e-10
(4)复数: 1 + 2j, 0.23-8.55j
real:复数的实部
imag:复数的虚部
conjugate():返回该复数的共轭复数
注:复数不支持比较大小, python也不支持 ++ , –
相关函数 yu
在进行运算时,由于精度的问题,对于实数运算可能会有一定的误差,应尽量避免在实数之间直接进行相等性测试,而是应该以二者之差的绝对值是否足够小作为两个实数是否相等的依据
0.3 + 0.2 # 0.5 0.4 - 0.1 # 0.30000000000000004 0.4 - 0.1 == 0.3 # False abs(0.4-0.1 - 0.3) < 1e-6 # True5.输入输出函数
input( )函数:从控制台获得用户输入的函数,可包含一些提示性文字,用户输入的信息以字符串类型保存在< 变量>中
< 变量> = input(< 提示信息字符串>)
eval( )函数:以Python表达式的方式解析并执行字符串,将返回结果输出,即去掉参数最外侧引号并执行余下语句的函数
eval(< 字符串或字符串变量>)
eval()函数经常和input()函数一起使用,用来获取用户 输入的数字:
<变量> = eval(input(<提示信息字符串>))
print( )函数:以字符形式向控制台输出结果的函数,字符串类型的一对引号仅在程序内部使用,输出无引号
print(value1, ..., sep=' ', end='n', file=sys.stdout, flush=False)
sep参数之前为需要输出的内容(可以有多个);
sep参数用于指定数据之间的分隔符,默认为空格;
end参数用于指定输出完数据之后再输出什么字符;
file参数用于指定输出位置,默认为标准控制台,也可以重定向输出到文件
print(1, 3, 5, 7, sep='t',end='!')
1 3 5 7!
with open('test.txt', 'a+') as fp:
print('Hello world!', file=fp) #重定向,将内容输出到文件中
6.模块导入
1.使用import保留字完成
import <库名> [as 别名] #采用< a>.< b>( )编码风格
<库名>.<函数名>(<函数参数>)
2.使用from和import保留字共同完成
7.del和垃圾回收使用from和import保留字共同完成
from <库名> import <函数名> [as 别名]
from <库名> import *
<函数名>(<函数参数>)
== del删除名称,而不是对象==,删除alist之后就不能未经初始化使用它,blist还有效, blist指向的对象还存在
Python的垃圾回收: Python 自动进行内存管理,主要算法为引用计数,当引用计数归零时,对象立即就被销毁,释放内存。当删除的变量保持的是对象最后一个引用的时候,会删除对象
短路效应:当一个 or 表达式中所有值都为真, Python会选择第一个值;当一个 and 表达式 所有值都为真, Python 会选择最后一个值
(2 or 3) * (5 and 6 and 7) 14 # 2*7二、组合数据类型 1.字符串
没有字符常量和变量的概念, 只有字符串类型的常量和变量,单个字符也是字符串
使用单引号、 双引号、 三单引号、 三双引号作为定界符(delimiter) 来表示字符串, 并且不同的定界符之间可以互相嵌套
与C/C++区别:
1.没有单独的char数据类型,一个字符就是长度为1的字符串
2.字符串是不可改变的
3.Python字符串后是没有’ ’ 结尾的
正向递增序号 和 反向递减序号
索引:返回字符串中单个字符 ,<字符串>[M]
切片:返回字符串中一段字符子串 , <字符串>[M: N]
注:范围是左闭右开,M起点,N前一个字符为终点
使用[M: N: K]根据步长对字符串切片,M缺失表示至开头, N缺失表示至结尾,根据步长K对字符串切片
一些特殊的字符
续行符:“”
转义符:" " , 转义符表达特定字符,一般用于输出单/双引号
"b"回退
"n"换行(光标移动到下行首)
“r” 回车(光标移动到本行首)
r/R:原始字符串,所有的字符串都是直接按照字面的意思来使用, 没有转义特殊或不能打印的字符,用在字符串前面
字符串处理方法
| 方法 | 描述 |
|---|---|
| str.lower() 或 str.upper() | 返回字符串的副本,全部字符小/大写"AbCdEfGh".lower() 结果为 “abcdefgh” |
| str.split(sep=None) | 返回一个列表,由str根据sep被分隔的部分组成"A,B,C".split(",") 结果为 [‘A’,‘B’,‘C’] |
| str.count(sub) | 返回子串sub在str中出现的次数 “an apple a day”.count(“a”) 结果为 4 |
| str.replace(old, new) | 返回字符串str副本,所有old子串被替换为new"python".replace(“n”,“n123.io”) 结果为"python123.io" |
| str.center(width[,fillchar]) | 字符串str根据宽度width居中, fillchar可选"python".center(20,"=") 结果为’=python=’ |
| str.strip(chars) | 从str中去掉在其左侧和右侧chars中列出的字符"= python= “.strip(” =np") 结果为"ytho" |
| str.join(iter) | 在iter变量除最后元素外每个元素后增加一个str",".join(“12345”) 结果为"1,2,3,4,5" #主要用于字符串分隔等 |
字符串类型的格式化:格式化是对字符串进行格式表达的方式
1.format()方法
<模板字符串>.format(<逗号分隔的参数>)
如图:槽中的顺序可以默认,也可以自己设置
格式控制:
"{0:=^20}".format("PYTHON")
# '=======PYTHON======='
"{0:,.2f}".format(12345.6789)
# 12,345.68
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
# 110101001,Ʃ,425,651,1a9,1A9
"{0:e},{0:E},{0:f},{0:%}".format(3.14)
# 3.140000e+00,3.140000E+00,3.140000,314.000000%
2.列表
元组,字符串,列表这类格式,在进行两者之间的比较时,先从第一个元素开始比较ASCII码值的大小,如果相等,则依次往后比较,如果全部相等,则比较数量大小
三、控制结构 1.顺序结构
顺序结构就是平常一般的结构从上至下按照顺序执行,流程图如上
一般单一分支流程图如下:
根据判断条件结果而选择不同向前路径的运行方式
格式:
if <条件> : <语句块>
二分支结构
语法格式
if <条件> : <语句块1> else : <语句块2>
紧凑形式:适用于简单表达式的二分支结构
<表达式1> if <条件> else <表达式2>
如果条件成立,则执行表达式1,反之表达式2
x = 5 y = 9 a = x+y if x > 0 else x-y print(a) # 14
多分支结构
语法格式
if <条件1> : <语句块1> elif <条件2> : <语句块2> …… else : <语句块N>
注:注意多条件之间的包含关系,变量取值范围的覆盖
3.循环结构1.for循环
语法格式:
for <循环变量> in <遍历结构> : <语句块>
主要用于
计数循环(N次): 遍历由range()函数产生的数字序列,产生循环
字符串遍历循环:s是字符串,遍历字符串每个字符,产生循环
列表遍历循环: ls是一个列表,遍历其每个元素,产生循环
文件遍历循环: fi是一个文件标识符,遍历其每行,产生循环
range()语法格式
range(stop) range(start, stop) range(start, stop, step)
该函数返回具有惰性求值特点的range对象,其中包含左闭右开区间[start,stop)内以step为步长的整数。参数start默认为0,step默认为1
循环的扩展:for与else
for c in "PYTHON" :
if c == "T" :
continue
print(c, end="")
else:
print("正常退出")
# PYHON正常退出
for c in "PYTHON" :
if c == "T" :
break
print(c, end="")
else:
print("正常退出")
# PY
else语句只在循环正常执行结束之后才执行,当循环没有被break语句退出时,执行else语句块,else语句块作为"正常"完成循环的奖励
2.while循环
由条件控制的循环运行方式,反复执行语句块,直到条件不满足时结束
语法格式:
while <条件> : <语句块>
while 也可以和else搭配,也是一样的用法
break 和 continue
for c in "PYTHON" : if c == "T" : continue print(c, end="") # PYHON s = "PYTHON" while s != "" : for c in s : print(c, end="") s = s[:-1] # 每次减最后一个字符 # PYTHONPYTHOPYTHPYTPYP s = "PYTHON" while s != "" : for c in s : if c == "T" : break print(c, end="") s = s[:-1] # PYPYPYPYPYP
continue跳出本次循环,继续下一次循环
break仅跳出当前最内层循环
总结
提示:这里对文章进行总结:



