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') #替换

浙公网安备 33010602011771号