概叙
在自己学python的过程中,由于学习周期过长,很多命令又不是很常用,导致出现边学边忘的情况出现。故翻看了以前的基础课程及随堂笔记,对其进行整理,最终梳理出这套python基础语法万字笔记。借助b站学习平台分享给大家,方便大家可以在遇到问题时做字典使用,可以快速的回忆起基础函数用法。
一、python程序的基本格式 1 缩进 1.使用tab制表符或空格表示缩进,默认为一个制表符或4个空格为一个层级。(某些编辑器可自动调整tab为四个空格) 2.同一程序内缩进数量应保持一致。(你可自定义空格数量表达层级关系,但是你用俩空格,你后面所有的都要用俩空格)
age = int(input("请输入您的年龄:")) if abs(age) >= 18: print("您已成年") else: print("您还是未成年")
2 大小写 python区分大小写,python和Python代表两个不一样的对象。
#python里区分大小写,变量命名时应注意使用 name = "杰尼龟" name = "水箭龟" Name = "皮卡丘" print(name) #结果为水箭龟 print(Name) #结果为水卡丘
3 注释 注释表示该语句在程序运行时不被执行。单行注释使用【# 注释语句】,多行注释采用【'''注释语句'''】。
#这是单行注释,程序不会运行该语句 ''' 这是一段多行注释, 其实就是一个多行字符串, 但是你没有将它赋值给变量也没有对他进行操作, 所以程序也不会对它干什么,但是我们肉眼可看到,所以将它作为一个多行注释来使用。
4 行连接符及【;】的使用 python中一行代码过长时可在想换行处使用行连接符【\】,进行换行编写。程序还是会认为它在同一行。
print("随便打一串文\ 字做一下测试") #如果想把几行代码写为一行,可用【;】进行连接。 num = 2 ; result = num + 3 print(result)
5 转义字符 Python 支持的转义字符 常用转义字符
二、程序的构成
对象
python中一切皆对象
1.每个对象皆有对应的标识(id)、类型(type)、值(value)。
2.变量通过存储对象ID对其进行引用。
3.对象只能进行与其类型对应相关操作。
2 标识符
用于变量、函数、类、模块等的名称 命名规则: a.区分大小写。如:zxl和Zxl是不同的; b.第一个字符必须是字母、下划线。其后字符是字母、下划线、数字; c.不能使用关键字,如:if、elif、or等; d.以双下划线开头和结尾的名称通常由特殊含义,尽量避免此种写法。如:init是类的构造函数。
常见关键词,不可做变量名
约定俗成,非硬性规定。为了提高别人看你代码时的可阅读性
3 变量(变量作用域:全局变量、局部变量详见扩充部分)
程序就是用来处理数据的,而变量就是用来引用数据的;python中的变量不需要指明类型,系统会自动识别。
3.1 变量的初始化(赋值)
利用【=】号进行赋值:变量名 = 表达式
a = "杰尼龟" #id = 1612667500272 type:strprint(id(a),type(a))
python执行程序从上往下执行,如果后续代码中为变量重新指代了值,以前的那个值会被替换,并被python进行垃圾回收。
3.2 变量的赋值方式
a.链式赋值
将一个对象同时赋值给多个变量。 变量1 = 变量2 = 对象1
a = b = "杰尼龟" print(a,b) #结果为杰尼龟 杰尼龟
b.解包赋值 解包赋值可使用列表、元组、字典(均为python内置对象,详见基础数据类型板块)。方便我们对多个变量进行赋值 元组解包
(a , b , c) = (1 , 2 , 3) #等同于 a,b,c = 1,2,3 print(a , b , c) #结果为1 2 3
列表解包 [a,b,c] = [[1,2],3,[4,5]] print(a) #结果为[1, 2] print(b) #结果为3 print(c) #结果为[4, 5]
字典解包 字典解包时,默认是对键进行操作。如果想对值进行解包赋值,需使用values(),如果是想对键值对整体赋值,需使用items()(返回结果为元组类型)。
s = {"name":"杰尼龟","age":18,"color":"yellow"} a,b,c = s print(a,b,c) #结果为name age color a,b,c = s.values() print(a,b,c) #结果为杰尼龟 18 yellow a,b,c = s.items() print(a,b,c) #结果为('name', '杰尼龟') ('age', 18) ('color', 'yellow')
3.3 变量值互换
变量1,变量2 = 对象1 ,对象2
变量1,变量2 = 变量2 , 变量1
a , b = 1 , 2 a , b = b , a print(a,b) #结果为2 1
3.4 删除变量 可通过del删除不再使用的变量。
a = b = "杰尼龟" del a print(b) #结果为杰尼龟 print(a) #抛出异常:name 'a' is not defind
变量删除后,变量指代的对象依然存在,但是没有变量引用的对象会被python垃圾回收器回收,清除内存空间。像此处‘杰尼龟’字符串还被引用向了b,所以删除a变量,并不影响b的引用
4 程序的输入与输出
4.1 输入函数
python利用内置函数input()来获取控制台键盘输入的内容,并将内容存储于变量。
【变量 =input("提示信息") 】 age = input("请输入您的年龄:") print(type(age)) #结果为<class 'str'>
获取到的数据会存储为字符串类型
4.3 不换行打印
调用print()函数时默认结尾为换行符,可调整为其他字符串,使函数进行不换行打印。
a , b = 1 , 2 print(a,end="**") #结果为1**2(在同一行,不会换行) print(b) #如不加end=str,默认为end= "\n"
三、基本数据类型
1 布尔型(bool)
1.1 布尔值的创建
布尔型中只有True和False两个值,表示真和假(注意大小写);
1.2 布尔值的运算
a.作为布尔值使用时通常搭配逻辑运算符与(and)或(or)非(not)进行使用。 b.也可做为数字1和0使用(True为1,False为0)。
#and:一假返回假,or:一真返回真,not :返回相反值 print(True and True) #结果为True print(True and False) #结果为False print(False and False) #结果为False print(True or True) #结果为True print(True or False) #结果为True print(False or False) #结果为False print(not False) #结果为True print(not True) #结果为False print(True + 1) #结果为2 print(False + 1) #结果为1
2 数字型
2.1 整数型(int)
即为数学上的整数,例如:1,2,25,30等。
2.2 浮点型(float)
即为数学上的小数,包含.0小数,例如1.5,2.83,17.0等。
2.3 算术运算符
以下假设变量 a=10,b=20: 当整数与浮点数进行运算时,返回的值默认为浮点数。
a , b = 2 , 2.5 print(type(a * b)) #结果为<class 'float'>
2.4 数字格式化
下表展示了 str.format() 格式化数字的多种方法:
a = 3.1415926 print("{:.2f}".format(a)) #结果为3.14
^,<,>分别是居中、左对齐、右对齐,后面带宽度,: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。 +表示在正数前显示+,负数前显示-,(空格)表示在正数前加空格 b、d、o、x 分别是二进制、十进制、八进制、十六进制。
2.5 其他操作
divmod()函数
同时得到商和余数。
a = 10 b = 3 print(divmod(a,b)) #结果为元组(3,1)
round()函数
将浮点数四舍五入。
a = 3.678 print(round(a))#结果为4
chr()函数
用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符(参数可以是16进制或者10进制)。
a = 66 #十进制 b = 0x68 #十六进制 print(chr(a)) #结果为B print(chr(b)) #结果为B
int()函数
将数字型对象转化为整数(直接取整,非四舍五入)
a = 6.9 print(int(a)) #结果为6
float()函数
将数字型对象转化为浮点数(整数后直接加.0)
a = 2 print(float(a)) #结果为2.0
3 字符串型(str)(个人后期学习中最常见的数据类型)
是一种不可变的字符序列:后续所有拼接/修改操作均为形成新的字符串数据(标点符号及空格也是字符)。
3.1 字符串的创建
利用单引号('xxx')/双引号(“xxx”)进行创建。
a = '杰尼龟' ; b = "可达鸭" c = "my name is '杰尼龟'" print(type(a),type(b)) #结果为<class 'str'>
多行字符串(‘’‘xxxxxxx''')进行创建。
a = '''杰 尼 龟''' print(type(a)) #结果为<class 'str'>
3.2 字符串的拼接 使用【+】号进行拼接,生成一个新的拼接后的字符串对象。
a ,b , c= '杰尼龟' , "可达鸭" ,111 print(a + str(c) + b)#结果为杰尼龟111可达鸭 #str():将对象转换为一个字符串类型
直接字符串相接也可拼接
c= '杰尼龟' '暴打'"可达鸭" print(c)#结果为杰尼龟暴打可达鸭
“”.join(list)
将列表中字符串用特定字符拼接起来,不指定字符默认为直接拼接。(列表数据详见后面章节)
a = ['我', '叫', '杰', '尼', '龟'] print("".join(a)) #结果为我叫杰尼龟 print("*".join(a)) #结果为我*叫*杰*尼*龟
使用【+】,每【+】一次会形成一个新的对象。使用join在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。大型运算时推荐使用join
3.3 字符串的复制
字符串可直接使用乘法运算符进行复制
c = '杰尼龟' print(c * 3)#结果为杰尼龟杰尼龟杰尼龟
3.4 字符串的复制
str.isdigit()
检查字符串内部是否全部是数字,返回True或False。
c = '123456' print(c.isdigit())#结果为True c = '123 456' print(c.isdigit())#结果为False
str.isalpha()
检查字符串内部是否全是字母,返回True或False。
c = 'asdfgh' print(c.isalpha())#结果为True c = 'asdfgh123' print(c.isalpha())#结果为False
str.isupper()
检查字符串内部是否全是大写字母,返回True或False。
c ='ASDFGH' print(c.isupper())#结果为True c = 'asdfgh' print(c.isupper())#结果为False
str.islower()
检查字符串内部是否全是小写字母,返回True或False。
c ='asdfgh' print(c.islower())#结果为True c ='ASDFGH' print(c.islower())#结果为False
str.endswith() 检查字符串内部是否以指定字符串结尾,返回True或False。
c ='asdfgh' print(c.endswith("gh"))#结果为True
str.startswith() 检查字符串内部是否以指定字符串开头,返回True或False。
c ='ASDFGH' print(c.startswith("AS"))#结果为True
str.isspace() 检查字符串内部是否全是空格,返回True或False。
c =' ' print(c.isspace())#结果为True
3.5 查找字符串
len()
查找字符串的长度,返回长度数值。
c ='123456789' print(len(c))#结果为9
str.find()
查找指定字符在字符串中从左往右第一次出现的位置,有则返回字符下标(编号),没有返回-1。
c ='123456789' print(c.find("3"))#结果为2 print(c.find("10"))#结果为-1
str.rfind()
查找指定字符在字符串中从右往左第一次出现的位置,有则返回字符下标(编号),没有返回-1。
c ='1234567289' print(c.rfind("2"))#结果为7 print(c.rfind("10"))#结果为-1
str.index()
查找指定字符在字符串中第一次出现的位置,有则返回字符下标(编号),没有抛出异常。
c ='123456789' print(c.index("9"))#结果为8 print(c.index("10"))#结果为ValueError: substring not found
str.count()
查找指定字符在字符串中总共出现次数,返回数量。
c ='123456789123465184' print(c.count("1"))#结果为3 print(c.count("10"))#结果为0
3.6 “修改”字符串
python中字符串本身为不可修改类型,所有修改操作均为创建新的对象,原字符串不做改变。(修改后需赋值给新的变量或替换原变量)
str.replace("old","new")
使用指定字符替换字符串中对应字符。
a = "hello world" print(a.replace("o","0"))#结果为hell0 w0rld
str.upper() 将字符串内部字母转换为大写字母。
a = "12345asdf" print(a.upper())#结果为12345ASDF
str.lower()
将字符串内部字母转换为小写字母。
a = "12345ASDF" print(a.lower())#结果为12345asdf
str.capitalize()
将一个字符串的第一个字符改为大写字母,其余字母变小写。如果第一个字符不是字母,则仅将后续字母改为小写。
a = "12345ASDF" print(a.capitalize())#结果为12345asdf a = "a2345ASDF" print(a.capitalize())#结果为A2345asdf
str.split()
将字符串按照指定字符进行分割为多个字符串并存储在列表中,如不指定字符,默认为空格、换行符、制表符。
a = "我 叫 杰 尼 龟" b = "我*叫*杰*尼*龟" print(a.split())#结果为['我', '叫', '杰', '尼', '龟'] print(b.split("*"))#结果为['我', '叫', '杰', '尼', '龟']
str.title()
将字符串中每个单词的首字母大写,其余改为小写
a = "my name" b = "MY NAME" print(a.title())#结果为My Name print(b.title())#结果为My Name
str.swpacase()
将字符串中所有字母大小写互换
a = "My Name" print(a.swapcase())#结果为mY nAME
str.strip()
将字符串中首尾的指定字符去除(可不写参数,默认为空白/换行符/制表符等肉眼不可见符号)
a = '**杰尼*龟*' print(a.strip("*")) #结果为杰尼*龟
str.lstrip()
将字符串中左侧的指定字符去除
a = '**杰尼*龟*' print(a.lstrip("*")) #结果为杰尼*龟*
str.rstrip() 将字符串中左侧的指定字符去除
a = '杰尼*龟 eval():去除首尾引号,并执行余下语句 a = '123' print(eval(a)+2) #结果为125
ord():将单字符串转换为对应的Unicode编码
a = "杰" print(ord(a)) #结果为26480
3.7 字符串排版
str.center(num,"x")
填充x字符使字符串达到num长度,并将其居中
a = "杰" print(a.center(5,"*")) #结果为**5**
str.ljust(num,"x")
填充x字符使字符串达到num长度,并将原字符串居左
a = "杰" print(a.ljust(5,"*")) #结果为杰****
str.rjust(num,"x")
填充x字符使字符串达到num长度,并将原字符串居右
a = "杰" print(a.rjust(5,"*")) #结果为****杰
3.8 format()函数的应用(经常用到)
使用示例
a = "杰尼龟" b = "可达鸭" print("{}暴打{}".format(a,b)) #结果为杰尼龟暴打可达鸭 print("{0}暴打{0}".format(a,b)) #结果为杰尼龟暴打杰尼龟 print("{0}暴打{1}".format(a,b)) #结果为杰尼龟暴打可达鸭 print(f"{a}暴打{b}") #结果为杰尼龟暴打可达鸭,是上面写法的简易,{}中直接填入变量名
format()函数
print("{0}*{1}={2:*<7}".format(3,2,2*3))
位置索引
关键字映射
元素访问
填充对齐
a , b , c = "杰尼龟" , "可达鸭" , "杰尼龟" print("{0:*^7}使用火箭头槌暴打{1:*>7}和{2:*<7}".format(a,b,c)) #结果为**杰尼龟**使用火箭头槌暴打****可达鸭和杰尼龟****
【^,<,>】分别是居中、左对齐、右对齐,后面带宽度,: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
3.9 字符串索引操作
str[num]:找到字符串指定位置的字符。
标点符号及空格也是字符
a= "my name is '杰尼龟'" print(a[3]) #结果为n
3.10 字符串切片操作
str[x:y:±step]:从编号x到编号y之前,从左到右或从右到左以step间隔取值
在切片操作中,起始终止编号不在[0:字符串长度-1]这个范围内也不会报错,超过0或末端按0和末端截取
4. 类型转换
在python中可使用内置函数对数据类型进行类型转换:
① str():将数据转换为字符串类型;
a , b , c ='123',456,789.5 print(str(b)) ; print(str(c)) #结果为'456' 、 '789.5'
② float():将纯数字字符串或整数转换为浮点数;
a , b , c ='123',456,789.5 print(float(a)) ; print(float(b)) #结果为123.0 、 456.0
③ int():将纯数字字符串或浮点数转换为浮点数。
a , b , c ='123',456,789.5 print(int(a)) ; print(int(c)) #结果为123 、 789
int()函数转换是直接去掉小数点,而不是四舍五入
四、运算符
1. 比较运算符
2.逻辑运算符
3.身份运算符
4.成员运算符
5.算术运算符
6.赋值运算符
7.位运算符(暂时我也还没用过这东西)
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下: 下表中变量 a 为 60,b 为 13,二进制格式如下:
8.Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
由于篇幅有限分为上下两篇更新!这篇是上篇!
可以加下我的群领取完整全套视频源码教程看!免费领取:点这里即可