python基础

一、基础

	1.注释

		#

		'''  '''

	2.运行python的方式

		一 命令行运行

			输入代码立刻返回,无法永远保存

		二 集成工具运行

			自动保存代码,检查语法错误

		print(520,'jasd','哈哈')

	3.变量

		定义  		name='大海'		# = 是赋值

		命名规则 	下划线 age_of_dahai	驼峰体 AgeOfDahai

			1>见名知意

			2>第一个字符不能是数字

			3>由字母、数字下划线组成,区分大小写

		可以多次赋值,变相指向新的空间

	4.常量(全部大写):不变的量

		NAME='大海'		π

		#1.id相当于在内存中的位置和地址

			id(NAME)	#输出位置 2196036150704

		#2.type(NAME)	#查看数据类型 <class 'str'>



	5.数据类型

		字符串	str

			记录描述性的数据  在引号内按照从左到右的顺序依次包含一个个字符,可以说单引号,双引号,三引号(英文字符)

			里面的引号要避开

			可以按索引取值不能按索引修改   str[0]



		整型		int    age=18

		浮点型	float  weight=18.5

		布尔型   bool   true  false

		0b010101	二进制

		0o1513		八进制

		0xadf12		十六进制



	6.用户与交互		

		cmd的输入和输出不需要input和print		输入的值都为str类型

	7.格式化输出

		占位符  %s(可以接收任何类型)  %d(只能接收int类型)

		print('my name is %s'%input())

		print(type(input()))

		两个值的情况要把两个值放括号里逗号隔开

		print('我的名字叫%s,年龄%s'%(name,age))

		print('我的名字叫{},年龄{}'.format(name,age))

	8.数据类型转换 

	  s1 = '15.5'

	  float(s1)

	  int(float(s1))





		

	9.运算符

		算术运算符

			+			print(1+1)

			-			print(2-1)

			*	    	print(1*1)

			/		   	print(2/1)		1.0 输出浮点型

			//(取整)		print(3//2)		取整1	

			%(取余)	print(5%3)		2

			**乘方		print(4**2)		16

		比较运算符

			==(不等于)  	print(3==4)	false

			!=(不等于)		print(3!=3) false

			>(大于)			print(4>3)	true

			<(小于)			print(4<3)	false

			>=(大于等于)		print(4>=3) true

			<=(小于等于)		print(4<=3)	false

		Boolean	布尔类型(首字母要大写)

			True	真

			False	假

			tag = True

		复数类型complex	(了解)

			x = 1 -2j		(1 -2j)

		逻辑运算符





	10.列表	list	索引查找		

		l = [1,2,'ha','d']

		按索引取值从0开始	l[0]   反向取l[-1]	

		值可变		l[0] = 3

	11.字典dict		key(通常是str):value(任何类型)键值对

		像查字典一样查找,慢

		info = {'name':'大海',age:'18'}



	12.元组:tuple	 不可改,里面的list可以改看类型

		用于记录多个值,当多个值没有改的需求,用元组

		在()内定义多个值,各种类型

		t = ('a','v',16,'大海',("d",8),[1,2,3])

	13.集合 set

		定义:在{}中用逗号分开的值

			1.原素不能重复

			2.元素无序

		s1 = {'a','b','c'}

		s2 = {'b','d','c'}

		print(s1 & s2)		&交集 | 并集	-差集

	14.转义字符

		\n  回车键

		\t  tab键制表符

		\r  对前面所有内容覆盖

		\b  删除键一次 删一个

		\\  输出一个\

		\'	一个'

		r'as\nasd' 输出原文

	15.保留字

		import keyword

		print(keyword.kwlist)

	16.字符串方法

		字符串切片

			s = 'hello wold'

			s[0]	h

			s[0:4]	hell

			s[0:6:2]hlo 隔一个

			s[-1]	d   最后一个

		format()

			print('my name is {1},今年{0}岁'.format('dahai',18))

			print('my name is {name},今年{年龄}岁'.format(name='dahai',年龄=18))

		join		拼接

			s1 = 'abc'

			s2 = 'def'

			s3 = 'ghi'

			print(''.join([s1,s2,s3]))

			print(' '.join([s1,s2,s3]))拼接中间有空格

			print(','.join([s1,s2,s3]))逗号

		del 		删除

			del s1		删掉无法打印

		# 字符串变大写和变小写lower,upper

		s1.lower())

		s2.upper()

		s1.capitalize()		首字母大写

		s1.title()			每个单词首字母都大写

		#将字符串拆分为列表  split 默认空格才分

		s1 = 'abc#ads#dsad'

		s1.split('#') 按照#拆分

		#去电字符串两边的所有空格字符,strip默认是空格可以指定不管中间的其他字符

		s1 = '            dasd           '

		print(s1.strip())

		#查子字符串的位置  find rfind index rindex

		s1 = 'dsadasdsaddasd'

		print(s1.find('as'))

		print(s1.find('as',1,10))	查找指定范围内的,找不到返回-1

		index找不到会报错

		rfind  rindex  从右往左找

		#count		查找一个字符串在字符串中出现的次数

		print(s1.count('asd'))

		#p判断字符串中是否都是字母

		s1 = '123a'

		print(s1.isdigit())

		#判断是不是都是字母isalpha

		print(s1.isalpha())

		#比较开头的元素是否相同startswith

		#比较结尾的元素是否相同endswith

		print(s1.startswith('1'))

		print(s1.endswith('3'))

	17.列表方法append

		切片 和str一样

		#给列表添加元素

		s1 = ['asd','dsa','dsafdgb']

		s1.append('as')

		#给指定索引前添加一个值insert

		s1.insert(1,'ad')

		#给列表添加多个值extend末尾添加

		s1.extend(['asd','dxfhjio'])

		#删除del 按索引删除

		del s1[1]

		#remove 按字符串删除,只删第一个

		s1.remove('as')

		#pop 从列表拿走一个值,默认最后一个

		s2 = s1.pop(2)

		#清空列表

		s1.clear()	

		#反序reverse()

		s1.reverse()

		#排序sort默认是false升序,True降序

		s = [141,2,98,3,8,23,5,1,54,23,122,465]

		s.sort(reverse=True)

		s.sort()

	18.元组的方法

		元素不能更改,可以先强转成列表改完再转为元组



		#查与列表一样 索引,切片,长度len,count个数,index查找元素所在索引,成员运算

	19.字典

		键值对的形式,不可变,在赋值时尽量避免改值

		key不可提取,按key取值

		两种创建形式

		(1)d = {1:'da',2:'fa'}

		(2)c = dict(x = 1,y=2)



		#添加值

		d['aa'] = 'hh'

		#查看键值对个数

		print(len(d))

		#清空字典

		d.clear()

		#按key删除单个键值对

		del c['x']

		#按key删除单个键值对(key不存在会报错)

		del c['x']

		#pop删除,可以返回value

		res = c.pop('y')

		#删掉字典最后一个键值对,返回一个元组

		res1 = a.popitem()

		#通过name更改值,不存在会直接添加一个键值对

		a['a2'] = 'cc'

		#update更改

		a.update({'a1':'b'})

		#setresault有则不动返回原value,无责添加返回新value,不会更改原有的值

		res2 = a.setdefault('a1','aa')

		#按key查找value,没有会报错

		print(a['a1'])

		#get查找,无返回none

		print(a.get('aa1'))

		#获取字典所有key,返回一个列表

		resa = a.keys()

		#获取所有value,返回一个列表

		resval = a.values()

		#获得所有键值对,得到一个列表

		keyval = a.items()

	20.集合

		定义:{}中用逗号分割,元素不能重复,无序

		a = {'d','dd',13,('as','vv'),'adasdas'}

		print(a & a1)   #交集

		print(a | a1)   #并集

		print(a - a1)   #差集

		#add添加

		a.add('cc')

		#pop删除,删掉第一个,返回值为删掉的元素

		aa = a.pop()







	21.流程结构	

		#顺序结构if判断

			if star<=0:

			    print('垃圾')

			elif 0<star<=10:

			    print('白银')

		#双分支if else

			if sex=='男':

			    print('先生')

			else:

			    print('小姐姐')

		#条件表达式

			a = input()

			b = input()

			print(str(a)+'大于等于'+str(b)  if a>=b  else str(a)+'小于'+str(b))

		#while循环

			while True:

			    x+=1;

			    print(x)	   		

		#for循环,没有变量可以用_代替

			for str in a:

			    print(str)	    

  

一、基础
1.注释
#
''' '''
2.运行python的方式
一 命令行运行
输入代码立刻返回,无法永远保存
二 集成工具运行
自动保存代码,检查语法错误
print(520,'jasd','哈哈')
3.变量
定义 name='大海' # = 是赋值
命名规则 下划线 age_of_dahai 驼峰体 AgeOfDahai
1>见名知意
2>第一个字符不能是数字
3>由字母、数字下划线组成,区分大小写
可以多次赋值,变相指向新的空间
4.常量(全部大写):不变的量
NAME='大海' π
#1.id相当于在内存中的位置和地址
id(NAME) #输出位置 2196036150704
#2.type(NAME) #查看数据类型 <class 'str'>
 
5.数据类型
字符串 str
记录描述性的数据 在引号内按照从左到右的顺序依次包含一个个字符,可以说单引号,双引号,三引号(英文字符)
里面的引号要避开
可以按索引取值不能按索引修改 str[0]
 
整型 int age=18
浮点型 float weight=18.5
布尔型 bool true false
0b010101 二进制
0o1513 八进制
0xadf12 十六进制
 
6.用户与交互
cmd的输入和输出不需要input和print 输入的值都为str类型
7.格式化输出
占位符 %s(可以接收任何类型) %d(只能接收int类型)
print('my name is %s'%input())
print(type(input()))
两个值的情况要把两个值放括号里逗号隔开
print('我的名字叫%s,年龄%s'%(name,age))
print('我的名字叫{},年龄{}'.format(name,age))
8.数据类型转换
s1 = '15.5'
float(s1)
int(float(s1))
 
 
 
9.运算符
算术运算符
+ print(1+1)
- print(2-1)
* print(1*1)
/ print(2/1) 1.0 输出浮点型
//(取整) print(3//2) 取整1
%(取余) print(5%3) 2
**乘方 print(4**2) 16
比较运算符
==(不等于) print(3==4) false
!=(不等于) print(3!=3) false
>(大于) print(4>3) true
<(小于) print(4<3) false
>=(大于等于) print(4>=3) true
<=(小于等于) print(4<=3) false
Boolean 布尔类型(首字母要大写)
True 真
False 假
tag = True
复数类型complex (了解)
x = 1 -2j (1 -2j)
逻辑运算符
 
 
10.列表 list 索引查找
l = [1,2,'ha','d']
按索引取值从0开始 l[0] 反向取l[-1]
值可变 l[0] = 3
11.字典dict key(通常是str):value(任何类型)键值对
像查字典一样查找,慢
info = {'name':'大海',age:'18'}
 
12.元组:tuple 不可改,里面的list可以改看类型
用于记录多个值,当多个值没有改的需求,用元组
在()内定义多个值,各种类型
t = ('a','v',16,'大海',("d",8),[1,2,3])
13.集合 set
定义:在{}中用逗号分开的值
1.原素不能重复
2.元素无序
s1 = {'a','b','c'}
s2 = {'b','d','c'}
print(s1 & s2) &交集 | 并集 -差集
14.转义字符
\n 回车键
\t tab键制表符
\r 对前面所有内容覆盖
\b 删除键一次 删一个
\\ 输出一个\
\' 一个'
r'as\nasd' 输出原文
15.保留字
import keyword
print(keyword.kwlist)
16.字符串方法
字符串切片
s = 'hello wold'
s[0] h
s[0:4] hell
s[0:6:2]hlo 隔一个
s[-1] d 最后一个
format()
print('my name is {1},今年{0}岁'.format('dahai',18))
print('my name is {name},今年{年龄}岁'.format(name='dahai',年龄=18))
join 拼接
s1 = 'abc'
s2 = 'def'
s3 = 'ghi'
print(''.join([s1,s2,s3]))
print(' '.join([s1,s2,s3]))拼接中间有空格
print(','.join([s1,s2,s3]))逗号
del 删除
del s1 删掉无法打印
# 字符串变大写和变小写lower,upper
s1.lower())
s2.upper()
s1.capitalize() 首字母大写
s1.title() 每个单词首字母都大写
#将字符串拆分为列表 split 默认空格才分
s1 = 'abc#ads#dsad'
s1.split('#') 按照#拆分
#去电字符串两边的所有空格字符,strip默认是空格可以指定不管中间的其他字符
s1 = ' dasd '
print(s1.strip())
#查子字符串的位置 find rfind index rindex
s1 = 'dsadasdsaddasd'
print(s1.find('as'))
print(s1.find('as',1,10)) 查找指定范围内的,找不到返回-1
index找不到会报错
rfind rindex 从右往左找
#count 查找一个字符串在字符串中出现的次数
print(s1.count('asd'))
#p判断字符串中是否都是字母
s1 = '123a'
print(s1.isdigit())
#判断是不是都是字母isalpha
print(s1.isalpha())
#比较开头的元素是否相同startswith
#比较结尾的元素是否相同endswith
print(s1.startswith('1'))
print(s1.endswith('3'))
17.列表方法append
切片 和str一样
#给列表添加元素
s1 = ['asd','dsa','dsafdgb']
s1.append('as')
#给指定索引前添加一个值insert
s1.insert(1,'ad')
#给列表添加多个值extend末尾添加
s1.extend(['asd','dxfhjio'])
#删除del 按索引删除
del s1[1]
#remove 按字符串删除,只删第一个
s1.remove('as')
#pop 从列表拿走一个值,默认最后一个
s2 = s1.pop(2)
#清空列表
s1.clear()
#反序reverse()
s1.reverse()
#排序sort默认是false升序,True降序
s = [141,2,98,3,8,23,5,1,54,23,122,465]
s.sort(reverse=True)
s.sort()
18.元组的方法
元素不能更改,可以先强转成列表改完再转为元组
 
#查与列表一样 索引,切片,长度len,count个数,index查找元素所在索引,成员运算
19.字典
键值对的形式,不可变,在赋值时尽量避免改值
key不可提取,按key取值
两种创建形式
(1)d = {1:'da',2:'fa'}
(2)c = dict(x = 1,y=2)
 
#添加值
d['aa'] = 'hh'
#查看键值对个数
print(len(d))
#清空字典
d.clear()
#按key删除单个键值对
del c['x']
#按key删除单个键值对(key不存在会报错)
del c['x']
#pop删除,可以返回value
res = c.pop('y')
#删掉字典最后一个键值对,返回一个元组
res1 = a.popitem()
#通过name更改值,不存在会直接添加一个键值对
a['a2'] = 'cc'
#update更改
a.update({'a1':'b'})
#setresault有则不动返回原value,无责添加返回新value,不会更改原有的值
res2 = a.setdefault('a1','aa')
#按key查找value,没有会报错
print(a['a1'])
#get查找,无返回none
print(a.get('aa1'))
#获取字典所有key,返回一个列表
resa = a.keys()
#获取所有value,返回一个列表
resval = a.values()
#获得所有键值对,得到一个列表
keyval = a.items()
20.集合
定义:{}中用逗号分割,元素不能重复,无序
a = {'d','dd',13,('as','vv'),'adasdas'}
print(a & a1) #交集
print(a | a1) #并集
print(a - a1) #差集
#add添加
a.add('cc')
#pop删除,删掉第一个,返回值为删掉的元素
aa = a.pop()
 
 
 
21.流程结构
#顺序结构if判断
if star<=0:
print('垃圾')
elif 0<star<=10:
print('白银')
#双分支if else
if sex=='男':
print('先生')
else:
print('小姐姐')
#条件表达式
a = input()
b = input()
print(str(a)+'大于等于'+str(b) if a>=b else str(a)+'小于'+str(b))
#while循环
while True:
x+=1;
print(x)
#for循环,没有变量可以用_代替
for str in a:
print(str)
 
二、 函数
1.range函数
a = range(10)
print(list(a)) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.
 
#闭包函数 def a(x,y):     def b():         print(x+y)     return b c = a(1,2) c() #装饰器:特殊的闭包函数 name = 'dahaui' def run(name):     print('==')     print("我是%s"%name)     print('=======') def a(d):     def b(name):         print("前面=======")         d(name)         print("后面=======")     return b run = c = a(run) run(name) #测试程序运行时间的 #获取当前时间,测试程序运行时间 from datetime import datetime def run_time(so):     def new_fun(n):         #执行前时间         star_time = datetime.now()         so(n)         #执行后时间         stop_timne = datetime.now()         tt = stop_timne-star_time         print(tt)              return new_fun #1+到9000000 a = 9000000 @run_time def su(aa):     sum = 0     for i in range(1,aa+1):         sum  += i     print(sum) su(a) #文件操作 #获取文件对象 from os import read f =open(r'py\1.py',encoding='utf-8') ff = open(r'py\1.py',encoding='utf-8') #对文件进行读操作 print(ff.read()) f.close()       #要在程序结束前关闭 ''' 文件的打开模式     r:只读模式(默认的)         1.当文件不存在时,会报错         2.当文件存在,会指向开头     w:值写模式     a:只追加写模式 控制读写文件的单位     t:文本模式(默认)     b:二进制模式,一定不能指定encoding ''' #可以自动关闭文件,默认mode='rt' 只读模式 with open(r'py\1.py',mode='rt',encoding='utf-8') as f:     res = f.read()     print(res)     print(f.readable())     #判断rt模块是否能读     print(f.writable() )    #判断rt模块是否能写     L = [] #将结果放入列表     for i in f:         print(i,end=" ")         L.append(i)     print(L) with open(r'py\1.py',mode='rt',encoding='utf-8') as f:     print(f.readlines())    #一行代码搞定输出列表 # wt只写模式,不能读,只能str类型 with open(r'py\1.txt',mode='wt',encoding='utf-8') as f:      f.write('aaaa')         #没找到该文件会自动创建,覆盖添加  f.write('aaa\nbbbb\nccc\n') #写多行  #写入列表      a = [4,5,6,9,22,78]      for i in a:         f.write(str(i)) #一行代码搞定     f.writelines(a) #追加写 with open(r'2.txt',mode='at',encoding="utf-8") as f:     f.write('asdasdasd')  #二进制文件读取b模式 with open('py\1.jpg',mode='rb',) as f:     date = f.read()     print(date)     print(type(date)) f.seek(0,10)      #指针移动的位置
python包
import bs4 #网页解析获取数据 import urllib.request,urllib.error #指定url获取网页数据 import re #正则 import xlwt #excel操作 import sqlite3 #进行sqlite数据库操作
正则表达式
#正则表达式 f''' . 表示单个字符 [] 字符集,对单个字符给出取值范围 [abc]表示a,b,c,[a-z]表示a-z单字符 [^ ] 非字符集 [^abc]表示非a或b或c的单个字符 * 前一个字符0次或无限次扩展 abc*表示ab abc abcc abccc等 + 前一个字符1次或无限次扩展 abc+ 表示abc abcc abccc等 ? 前一个字符0次或一次扩展 abc?表示ab abc | 左右表达式任意一个 abc|def 表示abc def {m} 扩展前一个字符m 至n次 (含n) ab{2}c表示abbc #{m,n} 扩展前一个字符m至n ab{1,2}表示abc,abbc ^ 匹配字符串开头 ^abc表示abc且在一个字符串的开头 $ 匹配字符串结尾 abc$表示abc且在一个字符串的结尾 () 分组标记,内部只能使用|操作符 (abc)表示abc,(abc|def)表示其中一个 \d 数字,等价于[0-9] \w 单词字符,等价于[A-Za-z0-9] ''' import re pat = re.compile('aa') m = pat.search('CBaa') #查找,只查找第一个 search('a','aaaa') m1 = re.findall('[d-k]','') #查找所有的返回列表 m2 = re.sub('a','c','aa') #替换
 
posted @ 2021-12-15 21:20  不爱缺氧i  阅读(37)  评论(0)    收藏  举报