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', ' 这是第三行']

 

posted @ 2020-07-21 10:21  DNW12580  阅读(134)  评论(0)    收藏  举报