重拾python所要知道的一些主干知识点
阅读原文时间:2023年07月08日阅读:3

前言:因为有一段时间没有用python了,最近需要用到,只能回头过去看B站视频补一补,因为语言都是相通的,而且一些细节都可以去查表解决,所以呢,我们只需要知道一些python与其他语言的不同和常见的优势函数。这篇博客也是为了让我以后直接复习python整个概括而不用去看视频,可以直接上手python。

格式
1、python格式化位数不一定是四舍五入的。
2、python我们要很熟悉他的加法重载,灵活使用达到拼接的效果。

>>>print('hello','world!')
hello world!
>>>print('hello '+'world!')
helloworld!

2、转义符

print('Let\'s go!')
#对于太多需要转义的字符串,可以添加r
print('C:\\test\\test.txt')
print(r'C:\test\test.txt')

3、无论什么语言都要形成习惯,定义变量要设置初始值!!
4、python不像其他语言一样一个变量开辟空间,而是名字贴在值上,值对应开辟空间;如果没有一个名字贴在一个值上,那么这个值过段时间会被回收。
5、python从0开始,现在我所遇到的语言就只有matlab从1开始吧
6、python是通过缩进判断的语句的篇幅

if no xxx:
    ...
if xxx and xxx :
    ...

7、格式化

'{0} love {1}'.format('I','you')
'%c' % 98 #python是没有字符的,他认为一个字符是长度是1的字符串,这个意思是ASCII的转换

8、列表 元组 字符串 集合 字典`

#分片
meb=member[:2]#深度复制!开辟新的空间
meb=member #没有开辟新的空间,只是把新的名字贴上去!
#所以尽量有第一种去复制以及a.extend(b)

##列表 可以加入任何类型的元素
a = [1,'go',[]]
#一些操作函数自己查找就行这里不列出

##元组是带上枷锁的列表,值是不可以改变的
a = (2,'go',[])
#只有逗号也是元组
a = 1,3,45

##字符串
a = 'sitng'
a[0]

##字典
dic1={}
dict2 = {A:B}
#或者 dict2=dict(hello='world') ;dict2=dict('hello'='world')则不对!
#或者 dict2=dict(((A,B)(C,D)))注意括号!因为是dict带的是mapping
#dict[key]=value
dict2.keys()
dict2.values()
dict2.items()
dict2.get(key)
dict1.fromkeys(range(15),'hello')
#输出{1:'hello,2:hello,3:hello,...}

##集合
set1 = {1,3}
set1 = frozenset(set2)#不可变

注意list set dict str tuple 之间的转换

9、函数

#只需要记住下面的格式就行
#自己习惯:全部传参采用名字对应输入!
#*params是收集参数,是一个元组
def test(*params,name,number):
    ...
    return name

test((2,3,3,5),name='Carol',number=3)

10、几大常见函数!
1)匿名函数 lambda

g = lambda x , y : x+y

2)过滤器 对于多个数需要筛选出特定功能的数

filter(func or none ,iterable)
def odd (x):
    return x%2
g = filter(odd,range(10))
list(g)

3)mapping 映射,将迭代数投入到func中运算

map(func , iterable)
list(map (lambda x: x+2 ,range(10))) #range左闭右开

11、文件格式
这也是我因为不懂跑来看视频的罪终祸首。。。

import os
f = open('D:\\test.txt') #默认是r
f.read() #全部输出
f.seek(0,0)
#因为读取是由一个标签光标去实现上面的read已经到末尾了,所以我们先让读取光标回到最开始,然后进行下面的循环读取每一行的数据
for each_line in f:
    print(each_line)
f.close() #一定要关掉

如果要改写,则
f=open('D:\\test.txt','w')
str='carol_learning'
f.write(str) #注意是全部覆盖 如果想续下去,那应该是'a'打开
f.close()

pickle二进制

import pickle
my_list_second = [132,4235,542]
pickle_file = open('my_list_second.pkl','wb')
pickle.dump(my_list_second,pickle_file)
pickle_file.close()

pickle_file_load = open('my_list_second.pkl','rb')
my_list_load = pickle.load(pickle_file_load)

12.类
属性和方式同个名字,属性会覆盖方法

class A:
    number=1;
    def student():
        xxx
#继承list
class B(list){
#应用
a = A()
b = B()
b.append(9)

#很神奇python他具有类定义(静态static) 类对象(可以改变属性的值) 实例对象(各自可以更改,多态)

#一个类先调用__new__返回一个class(一般很少更改),然后返回的这个class再去__init__,最后当没有名字指向这个类的话,那么就是执行__del__

10、self(this)

class A:
    def setName(self,name):
        self.name=name;
    def kick(self):
        print("我叫%s" % self.name)#需要self ,则需要self作为第一个参数
    #结构函数
    def __init__(self):
        xxx
    #python 的私有 则是在变量前面添加__
    __name="李华"
    #则在外部访问不到这个名字
    #实际上python将私有变量__name变成_类__变量,因此可以用下面对私有变量进行访问
    a = A()
    a._A__name
    >>李华

11、继承

class Fish:
     def __init__(self):
        xxx
class Shark(Fish):
    def __init __(self):
        super().__init__()#注意调用同样的函数子会覆盖父类,因此用super进行父类的初始化
        xxx2
#多重继承
class Shark(Fish,Animals):
    xxx
#纵向是用继承,横向的是组合
#组合就是水池中有乌龟,鱼等,表现形式在于在水池这个类中实体化其他的类,没有继承关系!
class pool:
    def __init__(self):
        self.fish=Fish()
        self.shark = Shark()

12、模块
1、namespace.py
调用:

import namespace
namespace.xx()
%
import namespace as ns
ns.xx()

2、if name == “main” do something
如果此xx.py是执行文件,则__name__== “__ main__” ,do something
如果此xx.py是导入模块,则__name__!= “__ main__” ,不执行something

3、搜索路径
如果import A
A必须在sys.path里面

4、包(package)
把模块分别放到不同的文件里面,然后设置路径
步骤:
1、创建一个文件夹,放置相应的模块,文件夹的名字就是包的名字
2、在文件夹里面放置一个__init__.py,内容可以为空
3、那执行文件中,怎么import 其他文件的py文件?

import packagename.A #A为py文件


#检查
> import sys
> sys.path
> sys.path.append("r'C:\hello)

13、小甲鱼/快速找到自己需要的功能

timeit.__doc__
dir(timeit)

欢迎大家积极评论,是否还漏了大家常用的一些函数,大家对python用处不一样,所经常要用的不一样,侧重点有所不同哈