Python课程基础总结概括梳理【pyhton笔记】

2023-05-25 11:15:17 浏览数 (1)

Python3

  • 手册学习:系统化全面化
  • 视频学习:实用性高、学到了经验、用途
  • 刷题平台:结合学习,事半功倍
  • 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
  • 反斜杠()可以作为续行符
  • python库是可以其它语言编写,非常高效
  • python自身运行效率低于c
  • 老师提供的学习网站http://sdlg.alphacoding.cn/course/292/chapters
代码语言:javascript复制
  #格式化输出
a = 18
b = 12
print(f'今年{a}岁{b 1}')#这个更高效
#今年18岁13
print(f'',end=" ")#不换行
#输出多个数据的时候变量和变量之间默认会输出空格
a = 1
print(a,a,a)
#1 1 1


#输入    接收到的都是字符串
input('提示信息:')

#多个变量赋值,如a, b = 1, 2
#交换数值 a,b = b,a

#类型转换
eval()#将字符串,得到一个对应的类型的对象  因为它回解析字符串,解析出算式也会计算  
#例如
str = '1.0'
a = eval(str)
print(a)
print(type(a))
#结果:1.0  <class 'float'>
#例如
str = '1 1'
a = eval(str)
print(a)
#结果:2

int() #只能转化数字组成的字符串,空格啥的不能有
float()
str()

tuple() #序列转元组
list() #序列转列表
type() #得到对象的类型
#a = 1
#if type(a) == type(1):
#    print('ok')

#运算符
// # 整除
2**4 #指数,结果是16


#多变量赋值
a = b = c = 1  

#x绝对值
#abs(x)

#返回最值
#max(x1,x2,x3)
#min(x1,x2,x3)

#保留b位小数
#round(x[, b]) []表示  这里可不写,默认四舍五入取整
#round(1.11,1)
#1.1



#逻辑运算符
and or not  #if()and()	 #if()or()or()
1 and 2  #数字做逻辑运算为假时会返回0,为真的时候会返回最后一个数字


#支持  1<= a <= 3 写法


#随机数
import random        #导入模块
random.randint(1, 2)#范围1到2


#if三目运算符
c=a if a>1 else b  #如果成立,c=a,否则c=b


#for循环语法
#for 临时变量 in 序列:
#......

   
 

						#字符串   以str为案例
   
#输出i'm     
a='i'm'  		#报错,有三个当年引号,匹配出错
a = 'i'm' 		#转译一下就可以了,或者换双引号




#切片
#[开始下表,到底几个结束,间隔步长(不写默认为一)]      适应于     字符串、列表、字符串
str[2:5]    #从[0]开始读前五个数,取[2]往后的那段   12345  ->345
#等效于str[2]str[3]str[4]str[5]被输出
str[::-1]  #可以实现倒序输出




#常用操作方法						(工作中遇到不重要的方法再去查,没必要全都会)


#KMP查找子串第一次出现的位置 
#str.find(子串, 开始下标(可省略)  , 结束下标(可省略)  ) 
#str.rfind() 	#这里从右开始找
str = 'csdf'
str.find('c')	#参数可以只有子串


#子串出现次数                        常用
#str.count()	


#字符修改   (空替换就是删除)                        常用
#str.replace(被替换子串,替换后的子串,替换次数(可省略)   )
s = str.replace('a','b') 	#str中的a替换成b,str本身不变,将替换结果存入s,这也说明字符不可修改


#分割                        常用
#str.split(分割字符,分割次数(可省略)	)		返回一个列表


#合并列表中的字符串为一个大字符串
#连接符.join(字符列表)                        常用
list = ['1', '3', '2']
str = '...'.join(list)
print(str)
#1...3...2
list = ['1', '3', '2']
str = ''.join(list)
print(str)
#132

#全转小写                        常用
#str.lower()

#全转大写                        常用
#str.upper()

#所有单词首字母大写(又称标题化)
#str.title()

#首单词首字母大写
#str.capitalize()

#字符串居中                        常用
#str.center(width)
#在某宽度内居中,空格填充左右边

#str.strip(chars)
#去掉首尾chars

#判断开头
#str.startswith('开头串')

#判断结尾
#str.startswith('结尾串')

#判断都是字母
#str.isalpha()

#判断都是数
#str.isdigit()

#判断都是字母或数字
#str.isalnum()




						#列表   (以mylist为案例)
   
#可变数据类型
#可以存储多种类型数据,由于不同类型方法不同,建议列表里的数据是同类型的

#表中成员出现的位置
#mylist.index()

#表中成员出现的次数
#mylist.count('Tom') 

#表长度/成员个数
#len(mylist)

#判断某元素x在不在列表
#x in mylist  		返回值 Ture  在
#x not in mylist   	返回值 Ture  不在
#用途:避免邮箱重复注册

#添加元素(序列不拆开)
#mylist.append(数据)  数据可以是  数字、序列(列表、字符串)...

#添加元素(序列拆开,依次添加)
#mylist.extend(序列)  
mylist = [1,2]
mylist.extend([3,4])
#[1,2,3,4]

#指定位置添加元素
#mylist.insert(位置,数据)

#删除列表或元素
#del(mylist)
#del(mylist[0])

#删除最后一个元素,返回值为被删除的元素
#mylist.pop()

#删除第一个匹配的元素
#mylist.remove('元素')

#清空列表
#mylist.clear()

#列表逆序
#mylist.reverse()
mylist.reverse()
   for i in mylist:

#排序(key = None, reverse=False)  默认  升序,无关键字
#mylist.sort()
#mylist.sort(reverse = True)  降序

#列表的复制
#mylist1=mylist.copy()
#用途:工作中备份数据
#注意;list1=list2,不是赋值,这样会指向同一个地址,修改时都改变

#遍历列表
#for i in mylist:
   #...

#列表嵌套
mylist = [[1, 2], [3, 4]]
mylist[0][1]  #2





						#元组   (以my_tuple为案例)
   
#用途:存放不可修改的元素
#存放单个数据时 最后得加逗号
# my_tuple= (10,)

#元组的查找操作

#下标查找
#my_tuple[0]

#index查找
#my_tuple.index(元素值)
#返回元素的下标,若不在报错

#count查找
#my_tuple.count(元素)

#查找长度
#len(my_tuple)

#元组中的列表可以修改(不常用)






						#字典   (以my_dict为案例)
   
#用途:键值对查找

#创建空字典
#my_dict = {}
#或者函数创建
#my_dict = dict()

#增、改操作
#my_dict['key'] = 值

#删操作
#del(my_dict)
#del(my_dict['key'])

#清空
#my_dict.clear()

#查操作
#my_dict['key']
#这种方法查不到会报错,用get()不报错

#常用四个函数

#my_dict.get('key',查找失败返回信息(可不填)  )
#失败返回信息默认为None

#my_dict.keys()
#返回一个所有“键名”组成的可遍历(即可迭代)的对象
#输出的结果为:
#dict_keys(['key'])

#my_dict.values()
#返回一个所有“键值”组成的可遍历(即可迭代)的对象

#my_dict.items()
#返回一个所有“键值对”组成的可遍历(即可迭代)的对象

#字典遍历(遍历的往往就是可迭代对象)
#这里以“键值对”遍历
#for k,v in my_dict.items():
#	...





						#集合 (以my_set为案例)
   
#数据满足 确定性、互异性、无序性
#没有键值对,存放的都是值
#输出顺序不固定

#创建集合
#my_set = set()  空集合
#my_set.set('ab')
#结果:{'a','b'}

#增操作
#增加单个元素x
#my_set.add(x)
#增加多个x,y,z (一个序列)
#my_set.update([x,y,z])

#删x操作
#my_set.remove(x)
#my_set.discard(x)  #空删不报错
#my_set.pop()  #随机删

#查操作
#判断字典中是否有x元素
#x in my_dict  在,返回True 




						#公共操作
   
#运算符
#   合并  
#适合容器:str、touple、list
#如:str1   str2

#* 复制
#适合容器:str、touple、list
#如:str = '6'  
#print(str * 3)
#结果:666

#in          not in
#适合容器:str、touple、list 、set

#max()
#min()
#返回容器中的最值

#len()

#del 容器的名字

range(start,end,step)   步长可为负数,可不写,默认为一  开始不写,默认为0
#供 for循环使用 
#for i in range(0, 10):
#等效为
#for i in range(10):   产生从0开始不到end的循环序列 这里0-9

#list =[11,22,33]
#for i in enumerate(序列, start = 1):         start 默认为0
#	print(i)
#(1,11)
#(2,22)
#(3,33)



						#推导式
   
#创建有规律的序列(列表、字典、集合)

#list =[]
#:
#	list.append(i)

#推导式写法
#list = [ i for i in  range(10)]   从0开始的十个数
#一行代码实现
#list[0,1,2,3,4,5,6,7,8,9]

#带有条件
#list = [ i for i in  range(10) if i%2 == 0]   从零开始的十个数存满足条件的
#list[0,2,4,6,8]

#for嵌套
#list = [ (i,j) for i in  range(10) for j in  range(10)]
#list = [(0,1),(0,2)]

#两个列表合并成一个字典
#dict = {list1[i] : list2[i] for in range(len(list1))}

#提取字典中需要的数据
dict = { key,value for key,value in dict.items() if value > 200}

				
   
   
   
   					#函数
b = 1
def a():
    global b #全局变量
    b = 2 
   """hh"""
   print("66")
   return 1,2#多个返回值  默认元组,可以是列表

def f(*args):#不定长参数
   """接受任意参数,接收到一个参数元组/或字典,元组名字叫args"""
def f1():
   return 100,200
   
f(z =1,c =2) #接收到字典
f(1,2) #接收结果为元组
a()
help(a)#会输出函数内第一行注释

q,w = f1()#拆包

a,b = b,a #数值交换

id(a)#查看a的地址标识,用来判断是不是同一个值的引用
#列表字典集合可变,整点浮点字符串元祖不可变
- https://www.bilibili.com/video/BV1bt411g7sW?p=169已看完
- https://www.bilibili.com/video/av33963847/?spm_id_from=trigger_reload爬虫
- 
-     #turtle 海龟
#标准库中之一
import turtle as t    #turtle 简化为t(别名)
#...
t.done()       #结束后窗口保留,需要手动关闭


#绘图窗体(不是必须的)
#t.setup(width,height,x,y)距离左上角x,y
#库名.库函数

#方向控制
t.seth(angle)#绝对角度,改变海龟行进方向,  0/360 90/-270 180/-180 270/-90
#改变方向
t.left(angle)#相对角度,当前方向左偏angle度
t.right(angle)
t.fd(10)  #前进10像素(右为前方)  
t.fd(-10)#后退10像素
#色彩
t.pencolor('color')
t.pencolor(,,) #RGB色
#起笔
t.penup()
#落笔
t.pen.down()
#速度
t.speed(1)#范围1-10  10最快
#t.goto(0,0)是画板中心
#画圆
t.circle(150,45)  #半径150 角度45 海龟面向前方(对画布刚开始讲,正左为前方,角度为正,圆心在海归左手边,对画布刚开始来讲,就是正上方)
t.circle(-150,45) #半径为负值,圆心在右边
t.circle(150)#半径150的整圆
#t.goto(x,y)  画圆的时候,注意,两次定位同一个x,y结果不同,说明,两次定位的海龟朝向不同

import turtle as t
t.pensize(2)
for i in range(8):
   t.fd(60)
   t.left(135)#八角形

for i in range(8):
   t.fd(60)
   t.left(45)#八边形
   
t.fd(100)
for i in range(8):
   t.left(80)
   t.fd(100)
t.left(100)#叠变形





x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False  

id() 函数用于获取对象内存地址。

-     ** 复数( (complex))** - 复数由实数部分和虚数部分构成,可以用a   bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
- ---
数学函数
 函数             	返回值 ( 描述 )                              
 abs(x)         	返回数字的绝对值,如abs(-10) 返回 10                
 ceil(x)        	返回数字的上入整数,如math.ceil(4.1) 返回 5          
 cmp(x, y)      	如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换。
 exp(x)         	返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
 fabs(x)        	返回数字的绝对值,如math.fabs(-10) 返回10.0         
 floor(x)       	返回数字的下舍整数,如math.floor(4.9)返回 4          
 log(x)         	如math.log(math.e)返回1.0,math.log(100,10)返回2.0
 log10(x)       	返回以10为基数的x的对数,如math.log10(100)返回 2.0    
 max(x1, x2,...)	返回给定参数的最大值,参数可以为序列。                     
 min(x1, x2,...)	返回给定参数的最小值,参数可以为序列。                     
 modf(x)        	返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。  
 pow(x, y)      	x**y 运算后的值。                             
 [round(x ,n])  	返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。
 sqrt(x)        	返回数字x的平方根。                              
   numbers = [1, 3, 6]
   newNumbers = tuple(map(lambda x: x , numbers))
   print(newNumbers)
map()https://www.cnblogs.com/kongweisi/p/10441776.html

反向遍历一个序列,首先指定这个序列,然后调用 reversed() 函数:

for i in reversed(range(1, 10, 2)):
...     print(i)


--------------------------------程序设计实用篇------------------------------------
#升序集合
while True:
    input()
    li = input().split()#split里面为空,默认空格
    se = set(map(int, li))#map(函数,序列) 直接转化整个序列,得到一个map对象,再强制转换成其他类型
    li = map(str,sorted(se))
    print(" ".join(li))#输出格式为元素之间有间隔,最后一个为换行

#

 while True:
   ma = map(int, input().split())
   li = list(ma)
   m = format(li[0] / (li[0]   li[1])*100, '.2f')#format 保留两位小数,尽量再print前完成数据处理,format返回str对象
   w = format(li[1] / (li[0]   li[1])*100, '.2f')#format转float可能会出问题
   print(f'{m}% {w}%')

0 人点赞