1、打印:print(‘hello’)
2、Python的除法是数学意义上的除法 print(2/3) 输出:0.6666...
3、a=18 a=‘hello’ print(a) 可以直接输出
4、**2 表示2的平方
5、打印类型 print(type(a))
6、基本数据类型(Python中的变量类型不需要定义变量的时候声明,根据初始化的类型自行进行确定)
(1)int 整数 表示的范围可以自动扩容,范围是无穷的
(2)float(也是双精度的等同于java的double) 小数,浮点数
(3)str 字符串类型 a='hello'或a="hello"都可以 如果我们想在一个字符串里面还有字符串 我们可以写成 'MY name is "zhangsan"' 单引号套着双引号,也可以双引号套着单引号 如果我们的语句里又有单引号又有双引号可以写成 '''my 'name' is "hello"'''
(4)bool 布尔类型 只有真True和假False
7、查看字符串的长度: print(len(d)) 输出d字符串的长度
8、字符串拼接 a1=’hello‘ a2=’word‘ print(a1+a2) 不能字符串类型和数字类型混合相加
9、类型声明: a:int 但是a不会因为声明就无法动态转换类型
10、注释:
(1)注释行:#
(2)""" """
(3)批量注释(批量取消注释):
(3.1)选中要注释的代码
(3.2)使用ctrl+/
11、打印a=10这个内容(格式化字符串)
也可以
12、通过控制台来输入函数(实际上此时的num是个str类型)
13、强制类型转换
(1)a=int(a)
(2)a=str(a)
(3)a=float(a)
14、两个数字相加
(1)
a=input("请输入第一个整数:")
b=input("请输入第二个整数:")
a=int(a)
b=int(b)
print(f"您输入的数字是{a+b}")
(2)如果不转换类型就是字符串拼接
a=input("请输入第一个整数:")
b=input("请输入第二个整数:")
print(f"您输入的数字是{a+b}")
15、运算符的使用
(1)% 求余数
(2)** 进行乘方运算(能够支持整数也支持小数 **0.5 **2)
(3)/ 除数 不能以0为底
(4)// 地板除法(取整除法,向下取整) 7//2 输出3 -7//2 输出 -4
16、关系运算符(对应的表达式是布尔类型,表达式符合要求为真,不符合要求为假)
(1)<= 小于等于
(2)>= 大于等于
(3)== 等于(可以比较内容)
(4)!= 不等于
17、关系运算符不光可以针对数字进行比较,还能比较字符串
(1)比较的是按字典序
(2)也可以比较中文,不过用处不大
18、当用==比较浮点数时候我们需要注意是有误差的 0.1+0.2==0.3 可能是False因为是有小量误差 我们可以写成 -0.00001<0.2+0.1-0.3<0.000001
19、逻辑运算符(当第一个表达式判定成功,第二个表达式就不用再进行判断了)短路求值
(1)and 并且(一假则假)
(2)or 或者
(3)not 相反
20、多元赋值
(1)a,b=10,20
21、变量交换
(1)a,b=b,a
22、运算式
(1)a+=1 等于 a=a+1
(2)*= /= -= **= //= %= 都类似(1)
22、不支持 ++ --这种操作
23、if判断语句
num=input("请输入数")
if num=='1':
print("输入的是1")
elif num=='2':
print("输入的是2")
else:
print("不知道输入的啥")
24、注意我们的python非常注重换行
(1)两个输出分开执行
num=input("请输入数")
if num=='1':
print("输入的是1")
print("你输入的是2")
(2)两个输出一起执行
num=input("请输入数")
if num=='1':
print("输入的是1")
print("你输入的是2")
(3)非法情况
25、if嵌套使用
num1=input("请输入数")
num2=input("请输入")
if num1=='1':
if num2=='2':
print("num1=1 并且 num2=2")
print("num1=1 num2!=2")
print("num1!=1 num2!=2")
26、输入的 a=input(" 请输入a的值") a=int(a) 可以写成 a=int(input(" 请输入a的值"))
27、-19%2 也等于1
28、if判断下面要有需要执行的语句不然会报错,如果实在不想写东西可以写一个pass
num1=input("请输入数")
if num1=='1':
pass
else:
pass
29、while循环语句(打印1-10)
num1=1
while num1<=10:
print(num1)
num1=num1+1
30、for循环
(1)打印1-10
for i in range(1,11):
print(i)
(2)设置步长,默认步长是1(打印2,4,6,8,10)
for i in range(2,11,2):
print(i)
(3)反着打印(10-1)
for i in range(10,0,-1):
print(i)
31、批量修改变量名:shift+F6
32、结束循环
(1)continue 立即结束当前循环进入下次循环
(2)break 立即结束整个循环
33、生成随机数:random.randint(1,6) 生成一个从一到六的随机数,这个是前闭后闭区间[1,6]
34、有的方法我们不能直接用,需要导入包import 有的会自动导入,有的需要手动导入
35、退出执行程序
36、暂停一秒在执行
import time
time.sleep(1)
37、定义函数,调用函数(求1-100的和)
#定义函数
def calcSum(beg,end):
theSum=0
for i in range(beg,end+1):
theSum=theSum+i
print(theSum)
#调用函数
calcSum(1,100)
38、我们定义的函数结构体
(1)def 函数名(形参列表):
(2)函数体
(3)return 返回值(可以有可以没有)
39、函数调用
(1)函数名(实参列表)
(2)返回值=函数名(实参列表) (有返回值的情况下,没返回值就用(1))
40、也可以进行无参数定义调用(不调用函数不会执行)
def test():
print("11111")
test()
41、 可以多次调用
def test():
print("11111")
test()
test()
test()
test()
42、注意定义的形参数要和实参数对应的上,数量要一样,对应上的参数要符合运算规范
43、返回值函数的应用(运算10+20)
def test(a,b):
return a+b
num=test(10,20)
print(num)
44、多元赋值
(1)两个值都要
def test():
a=10
b=20
return a,b
c,d=test()
print(c,d)
(2)只要b赋值给d
def test():
a=10
b=20
return a,b
_,d=test()
print(d)
45、函数名相同但是是不同变量,函数里面的a,b和外面的a,b不一样
(1)
def test():
a=10
b=20
return a,b
a,b=test()
print(a,b)
(2)举例(x=10是全局变量,函数内部的属于局部变量)全局变量在整个程序中有效,局部变量只在函数内部有效
x=10
def test():
x=20
print(f'函数里面的X={x}')
test()
print(f'函数外面的X={x}')
(3)如果我们没在函数内部定义x我们就会输出全局变量的x如果全局也没x就会报错
x=10
def test():
print(f'函数里面的X={x}')
test()
(4)可以将我们的函数内部的局部变量,修改为全局变量(global)
x=10
def test():
global x
x=20
print(f'函数里面的X={x}')
test()
print(f'函数外面的X={x}')
46、在python里面只有函数和类会涉及到作用域,我们的if和for等代码块定义的i我们可以直接在for外面进行输出
举例:
for i in range(1,11):
print(i)
print("-------------")
print(i)
47、递归调用(求5的阶乘)
def factor(n):
if n==1:
return 1
return n*factor(n-1)
print(factor(5))
48、我们在定义默认参数时候(不能把非默认参数放到默认参数后面)
(1)add(x,y,flg=False) 正确
(2)add(x,flg=False,y) 错误
49、传递参数可以不按顺序传不过要加上参数名
def add(x,y):
return x+y
num=add(y=10,x=20)
print(num)
50、列表和元组
(1)列表:可变的,创建之后能改
(2)元组:不可变,创建好之后改不了,除非创建新元组
51、创建列表
(1)a=[ ]
(2)a=list()
(3)创建列表时设置初始值 a=[1,2,3]
(4)列表里的值是无限制的 a=[1,'hello',True,[1,2,3]]
52、下标访问列表
(1)a[2] 下标从0开始算 a[2]表示获取列表第三个数
53、下标修改元素 (a=[1,2,3,4])
(1)a[2]=100 输出 [1,2,100,4]
54、求字符串,列表,元组,字典,自定义类等长度
(1)len(要求的名)
55、表示列表最后一个元素
(1)a[len(a)-1]
(2)a[-1]
56、切片操作
(1)左闭右开
a=[1,2,3,4]
print(a[1:3])
(2)从下标1开始取到最后(省略后边界)
a=[1,2,3,4]
print(a[1:])
(3)省略前边界(从0下标开始取)
a=[1,2,3,4]
print(a[:2])
(4)前后都省略掉,得到完整列表
a=[1,2,3,4]
print(a[:])
(5)带有步长的切片操作(每隔5个元素取一次)
a=[1,2,3,4,5,6,7,8,9]
print(a[::5])
(6)从一开始到七每隔5个元素取一次
a=[1,2,3,4,5,6,7,8,9]
print(a[1:7:5])
(7)倒着取元素
a=[1,2,3,4,5,6,7,8,9]
print(a[::-1])
57、遍历列表
(1)对元素进行更改时候不能用,因为更改的是 i 不是列表 a
a=[1,2,3,4,5,6,7,8,9]
for i in a:
print(i)
(2)当我们需要对元素进行更改时候要用这个或(3)
a=[1,2,3,4]
for i in range(0,len(a)):
print(a[i])
(3)同(2)的描述
a=[1,2,3,4]
i=0
while i<len(a):
print(a[i])
i=i+1
58、往列表新插元素
(1)往末尾插(append)
a=[1,2,3,4]
a.append(5)
a.append('hello')
print(a)
(2)任意位置新增(insert)insert有两个元素第一个往哪里插,第二个插入啥元素
a=[1,2,3,4]
a.insert(1,'hello')
print(a)
(3)如果insert过大就插入到最后
a=[1,2,3,4]
a.insert(100,'hello')
print(a)
59、判断元素是否在列表中存在
(1)判断存在
a=[1,2,3,4]
print(1 in a)
(2)判断不存在
a=[1,2,3,4]
print(1 not in a)
60、使用index方法判定元素在列表中的位置
a=[1,2,3,4]
print(a.index(2))
61、删除列表的元素
(1)删除最后的元素pop
a=[1,2,3,4]
a.pop()
print(a)
(2)删除任意位置元素pop
a=[1,2,3,4]
a.pop(1)
print(a)
(3)按照元素值来删除 remove
a=[1,2,3,4]
a.remove(2)
print(a)
62、列表拼接
(1)不修改列表a和b的内容(低效)
a=[1,2,3,4]
b=[5,6,7,8]
c=a+b
print(c)
(2)修改内容,把后一个列表内容拼接到前一个里面(高效)
a=[1,2,3,4]
b=[5,6,7,8]
a.extend(b)
print(a)
63、创建元组
(1)a=()
(2)a=tuple()
(3)创建元组并给初始值 a=(1,2,3,4) 和列表一样可以是任意类型
64、通过下标来访问元组
(1)也是从0开始到len-1结束(也可以是负数,负数就是倒着取)
a=(1,2,3,4)
print(a[1])
65、元组切片(和列表操作一样)
a=(1,2,3,4)
print(a[1:3])
66、遍历元组和列表一样
67、判断元素是否存在,查找元素下标也跟列表一样
68、可以用+来拼接两个元组,不支持修改操作
(1)append,pop,extend都是不可以使用的
69、在我们上面讲到的多元赋值其实就是用元组的方式进行工作的
70、元组主要的就是只读操作,不可以写(多人协作开发时用处很大),元组是不可变对象,是可以哈希的
71、字典(一种存储的键值对结构,key:value的形式,id:1)
72、创建字典
(1)创建空字典
(1.1)a={}
(1.2)a=dict()
(2)创建有内容的字典
a={
'id':1,
'name':'zhangsan'
}
print(a)
73、查找key是否在字典中(不能用此方法查value)
(1)查找存在用 in
a={
'id':1,
'name':'zhangsan'
}
print('id' in a)
(2)查找不存在用 not in
74、根据key获取value
(1)当key为str类型
a={
'id':1,
'name':'zhangsan'
}
print(a['id'])
(2)key也可以是int类型
a={
'id':1,
'name':'zhangsan',
100:'lisi'
}
print(a[100])
75、对于列表来说in是比较低效的(遍历整个列表),对于字典来说in是高效的(字典背后用了哈希表)
76、字典的新增操作
a={
'id':1,
'name':'zhangsan',
100:'lisi'
}
a['sex']=1
print(a)
77、在字典中根据key修改value(如果key不存在新增,如果key存在就修改)
a={
'id':1,
'name':'zhangsan',
100:'lisi'
}
a['id']=10
print(a)
78、 字典中删除操作
a={
'id':1,
'name':'zhangsan',
100:'lisi'
}
a.pop(100)
print(a)
79、遍历字典(谁在第一先遍历谁,谁先插入进来先遍历谁)
(1)
a={
'id':1,
'name':'zhangsan',
100:'lisi'
}
for key in a:
print(key,a[key])
(2)keys获取到字典中的所有key
a={
'id':1,
'name':'zhangsan',
100:'lisi'
}
print(a.keys())
(3)values获取到字典中的所有values
a={
'id':1,
'name':'zhangsan',
100:'lisi'
}
print(a.values())
(4)items获取到字典中的所有键值对
a={
'id':1,
'name':'zhangsan',
100:'lisi'
}
print(a.items())
(5)遍历key和value
a={
'id':1,
'name':'zhangsan',
100:'lisi'
}
for key,value in a.items():
print(key,value)
80、合法的key类型
(1)可hash类型(可以为key的)int str bool tuple float
(2)不可hash类型(不可以为key的):list dict
81、文件操作
(1)文件路径:举例:D:/program/qq/Bin/QQ.exe(路径是指在硬盘上的详细位置)( / 和 \ 都行)
(2)打开文件(读):open('D:/python/test.txt','r')(第一个参数是打开哪个文件,第二个 r 是打开方式,r表示read,按读方式打开,w 表示write表示按写的方式打开,a表示写的方式打开,不过是在原有内容的末尾写,追加写) open('D:/python/test.txt','r')是有返回值的我们可以接收一下 f=open('D:/python/test.txt','r')此处的 f 就是文件对象,相当于遥控器,操作 f 就可以了
(3)关闭文件(文件打开完是一定要关闭的,为了释放系统资源):f.close()
(4)我们的python中有自带的垃圾回收机制,会自动把我们不用的文件进行回收
(5)打开文件(写):w会清空前面写的内容
f=open('D:/python/test.txt','w')
f.write('hello')
f.close()
(6)打开方式(追加写):不会清除前面已经写的内容
f=open('D:/python/test.txt','a')
f.write('word')
f.close()
(7)加\n是换行
f=open('D:/python/test.txt','a')
f.write('word\n')
f.close()
82、读文件(我们的python一般是按gbk的方式读,我们需要改成utf8)
(1)读两个字节,相当于读两个汉字
f=open('D:/python/test.txt','r',encoding='utf8')
result=f.read(2)
print(result)
f.close()
(2)按行来读
f=open('D:/python/test.txt','r',encoding='utf8')
for line in f:
print(f'line={line}')
f.close()
(3)按照(2)打印出来会有空行,我们可以把print的默认空行取消
f=open('D:/python/test.txt','r',encoding='utf8')
for line in f:
print(f'line={line}',end='')
f.close()
(4)使用readlines方法直接把整个文件内容都读出来,按照行组织到一个列表里
f=open('D:/python/test.txt','r',encoding='utf8')
line=f.readlines()
print(line)
f.close()
83、上下文管理器(可以避免我们在close文件前有return导致文件没法正常关闭)
(1)自动关闭文件,调用with代码块结束自动close(不在怕return)
def func():
with open('D:/python/test.txt','r',encoding='utf8') as f:
#要执行的代码
84、使用库
(1)标准库(python自带的库)
(2)第三方库(其他人做出来的)
85、使用第三方库计算日期
(1)写法1
import datetime
date1=datetime.datetime(2024,2,14)
date2=datetime.datetime(2030,10,1)
print(date2-date1)
(2)写法2
from datetime import datetime
date1=datetime(2024,2,14)
date2=datetime(2030,10,1)
print(date2-date1)
(3)写法3
import datetime as dt
date1=dt.datetime(2024,2,14)
date2=dt.datetime(2030,10,1)
print(date2-date1)
86、代码案例(逆置字符串)
def reverseWords(s:str):#给s指定类型
tokens=s.split(' ') #空格做分割截取
tokens.reverse() #逆置截取的字符
return ' '.join(tokens)#调用空格的join方法进行拼接
print(reverseWords('hello word'))