python零碎基础(部分)
str.split(指定以什么分隔(默认空格 换行符等);哪部分分割(默认全部))
字符串合并
list = ["守", "望", "先", "锋"] new_list = "++".join(list) print(new_list) 输出样例 守++望++先++锋
字符串检索
str_1 = "3.14159265358979323846" str_1 = str(str_1) print(str_1.count('3'))
输出 4
str_1 = "3.14159265358979323846"
str_1 = str(str_1)
print(str_1.find('3'))#返回首次出现索引,若没有出现返回-1
输出0
str_1 = "3.14159265358979323846"
str_1 = str(str_1)
print(str_1.index('3'))#返回首次出现索引,若没有出现抛出异常
输出0
str_1 = "3.14159265358979323846"
str_1 = str(str_1)
print(str_1.startswith('3'))#返回True/False endwith同理
输出True
字符串大小写转换
str.upper()/str.lower()
删除字符串某个字符
str_1 = "@#$#@$@#@$" str_1 = str(str_1) print(str_1.strip("@"))#删除头尾
输出为 #$#@$@#@$
str.lstrip()/str.rstrip()分别为删除左,删除右
正则表达式
# match()方法直接第一个pp,不是直接返回None #判断是否可能为移动号码 match方法 # import re # str_01 = "18839129432" # pattern = r'188\d{8}$' #正则表达式 # match = re.match(pattern, str_01) # print(match) # if match != None: # print("y") # else: # print("n") #search()方法 pp到最先符合的目标 #检测危险言语 # import re # str_02 = "我想学习黑客知识研究抓包" # pattern = r'(黑客)|(骇客)|(抓包)|(监听)' # match = re.search(pattern, str_02) # print(match) # if match != None: # print("Waring") #findall()方法 pp到所有符合得目标 # import re # str_03 = "144.144.144.145 114.144.144.144" # pattern = r'([1-9]{1,3}(\.[1-9]{1,3}){3})' #最外面一层小括号必须加上,否则打印出来group[0]不是一组 # match = re.findall(pattern, str_03) # print(match) # for group in match: # print(group[0]) # 输出结果 # [('144.144.144.145', '.145'), ('114.144.144.144', '.144')] # 144.144.144.145 # 114.144.144.144
#sub()方法替换目标
# import re
# str_03 = "144.144.144.145 114.144.144.144"
# pattern = r'([1-9]{1,3}(\.[1-9]{1,3}){3})' #最外面一层小括号必须加上,否则打印出来group[0]不是一组
# match = re.sub(pattern, "8.8.8.8", str_03) #全部替换为8.8.8.8
# print(match)
# 输出结果:
# 8.8.8.8 8.8.8.8
#正则表达式分割字符
# import re
# url_01 = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=%E5%B0%8F%E7%8C%AA%E4%BD%A9%E5%A5%87&oq=%25E5%25B0%258F%25E7%258C%25AA%25E9%2585%258D%25E7%25BB%2599&rsv_pq=8a730220000001ed&rsv_t=5faa4doj%2BvcPAxlxfcHkKleWIjKxKEOB1Sns2XfWgfZFjMohKxJoAL2P0Ho&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=9&rsv_sug1=9&rsv_sug7=100&rsv_sug2=0&rsv_btype=t&inputT=1499&rsv_sug4=2351"
# pattern = r'[?|&]' #定义分隔符 注意加上[]
# match = re.split(pattern, url_01)
# print(match)
# 输出:
# ['https://www.baidu.com/s', 'ie=utf-8', 'f=8', 'rsv_bp=1', 'tn=baidu', 'wd=%E5%B0%8F%E7%8C%AA%E4%BD%A9%E5%A5%87', 'oq=%25E5%25B0%258F%25E7%258C%25AA%25E9%2585%258D%25E7%25BB%2599', 'rsv_pq=8a730220000001ed', 'rsv_t=5faa4doj%2BvcPAxlxfcHkKleWIjKxKEOB1Sns2XfWgfZFjMohKxJoAL2P0Ho', 'rqlang=cn', 'rsv_enter=1', 'rsv_dl=tb', 'rsv_sug3=9', 'rsv_sug1=9', 'rsv_sug7=100', 'rsv_sug2=0', 'rsv_btype=t', 'inputT=1499', 'rsv_sug4=2351']
类的学习
class human: _sexual = "man" #定义protected属性只能本类和实例访问 __habit = "wu" #定义private属性,只能本类访问 下有实例加类名访问语句 def __init__(self): print("我是一个精神小伙") def skill(self, s = "跳舞"): #设置默认参数 print("我的特长是") print(s) @property #装饰器,使用之后将方法转换为属性,调用不能加() 方法abc转换为属性之后无法赋值(只读) def abc(self, a=44, b=2): #写默认参数要加上self return a*b YingLiuZhiZhu = human() YingLiuZhiZhu.skill() YingLiuZhiZhu.skill("唱歌") human.age = 66 #以该方式可以动态为类和对象添加属性 或直接这样重新定义 print(YingLiuZhiZhu.age) print(human._sexual)#通过类访问protected属性 print(YingLiuZhiZhu._sexual)#通过类的实例访问protected属性 print(YingLiuZhiZhu._human__habit)# 通过 实例._类__habit访问__habit属性(private) print(YingLiuZhiZhu.abc) #继承 class Student(human): '''这是一个继承human的类''' def __init__(self): super().__init__() # 调用基类的初始化函数 好像只能在初始化函数中调用 def skill(): print("派生类中函数重写") #方法重写 Student.skill() stu1 = Student()
输出结果:
我是一个精神小伙
我的特长是
跳舞
我的特长是
唱歌
66
man
man
wu
88
派生类中函数重写
我是一个精神小伙
编写一个模块并调用
文件名 BMI计算模块
def fun_bmi(name, height, weight): print(str(name)+"的身高是"+str(height)+"体重是"+str(weight)+"\nBMI为"+str(weight/(height**2)))
if __name__ == '__main__': #如果将此模块作为主程序 被调用时 __name__ != '__main__'
fun_bmi(486, 1.87, 75)
import BMI计算模块 BMI计算模块.fun_bmi(486, 1.87, 75)
输出结果:
486的身高是1.87体重是75
BMI为21.447567845806283
断言
a = input("a = ") b = input("b = ") assert a>b ,"阿巴阿巴" a > b 无影响 a < b 抛出异常 AssertionError: 阿巴阿巴
文件操作
with open('balabala.txt', 'w') as f: #创建并打开文件 f.write("这是一个文件操作测试文件=.= \n 这是第二行 \n 这是第三行") #w状态写入 with open('balabala.txt', 'r') as f: f.seek(2) #将文件指针移至第几个字符前 s = f.read() #r(只读) r+(读写)状态read 否则抛出io.UnsupportedOperation: not readable print(s) with open ("balabala.txt", 'r+') as f: line_1 = f.readline() #读取一行 line_2 = f.readlines() #从指针起的所有行 返回一个列表 print(line_1, line_2) 输出结果: 是一个文件操作测试文件=.= 这是第二行 这是第三行 这是一个文件操作测试文件=.= [' 这是第二行 \n', ' 这是第三行']

浙公网安备 33010602011771号