美文网首页
python小记

python小记

作者: 我是啵啵 | 来源:发表于2019-10-21 21:46 被阅读0次

面向对象解释型语言

image.png
https://www.tiobe.com/tiobe-index/
规范的缩进
解释性:
一行一行的读取 执行
可以在第一行声明解释器
#!/+python命令的目录+python

然后写代码
声明可执行权限
chmod u+x python文件名字.py
执行
./python文件名字.py

可以设置vim
显示行号
和缩进的格数

python 注释
一行#
一块```` ```
定义一个main函数
def main():
ascll码
127 个字符
找8位 就一个字节就能对字符进行编码
中文两个字节
才能存
unicode 编码
全球的语言4个字节
可以在代码第一行声明编码
8-bit Unicode Transformation Format 就是utf - 8
py 变量的值是什么类型 就是什么类型
a=1
a是栈里的引用
1是堆里的值

变量

看a的类型
type(a);
str="hello"
x,y=11,22
z=True
trueT大写
字符串可以""   /  ' '
None  大写!  是一个特殊的空值  防止空指针 在堆内存中有值

标识符

print("aa","bb","cc")
print(222+333)
print("我的年龄%d"%a)
print("我的年龄%d"%(a+b))
print("我的年龄%d,名字是%s"%(a+b,name))
%s可以所有的类型 
int 也可以

print("hehe%4d"%a)
4表示%d占几位 默认用空格填充
print("hehe%04d"%a)
4表示%d占几位 用o填充
  w=3.1415926
print("圆周率%.6f"%w) 
百分号 表示占位符
%%第一个表示%转义

输入

inn = input("请输入姓名")
print(inn)
把输入当成字符串
转换 aa=int(inn)

符号

**
取幂
print(7/3)
print(7//3)
print(7%3)
2.3333333333333335
2
1

导包
pip install matplotlib ,pip install numpy

a = 4
m = "lin"
c = input("shuru")
if a >= 4 and m == "lin":
    print("为后来的撒阿飞")
---------------------------------------
a = 4
m = "lin"
if a < 4 and m == "lin":
    print("为后来的撒阿飞")
elif a >= 4 or m == "":
    print("shenme")
---------------------------------
a = 4
m = "lin"
if a < 4 and m == "lin":
    print("为后来的撒阿飞")
elif a >= 4 or m == "":
    print("shenme")
------------------------------------
还能加
elif not  a !=4:
    pass
    print("asdgfa")

循环

i = 1
sum =0
while i<100 :
    sum=sum+i
    i=i+1
print(sum)
---------------------------------------------
i = 1
sum =0
while i<=100 :
    if i%2==0:
        sum=sum+i
    else:
        pass
    i=i+1
print(sum)

---------------------------------------
n= int(input("请输入行数"))
i=0
while  i <=n:
    j=0
    while j < i :
        print(" ",end="")
        j = j+1
    j=n-i
    while j > 0 :
        print("* ",end="")
        j =j-1
    i=i+1
    print("\n")

输出:
请输入行数4
* * * * 
 * * * 
  * * 
   * 

默认 
print (" ") 结束自动换行 
下面可以取消换行
应该是以""结束吧
  print("* ",end="")
打印回车
 print("\n")

for循环

  • 循环次数
  • 每次循环干什么
  • 变量怎么变化
n=0
for i in range(1,10):
    n=n+i
    print(i)
print(n)
for i in ["hhh","asdf","fsdgf"]:
    print(i)

1
2
3
4
5
6
7
8
9
45
hhh
asdf
fsdgf

break continue
字符串

mm="fsadf"
len(mm)是长度 
name[0]
f
name[-1]
f
截取
截取包头不包尾
[开始:结束:步长]
步长:
是下标变换的规则
name ="ashdgadafl"
bb=name[0:3]
print(bb)
----------------------------------
name ="ashdgadafl"
bb=name[0::2]
print(bb)
输出:
ahgdf
倒序
name ="ashdgadafl"
bb=name[-1::-1]
print(bb)

``
------------------
name ="ashdgadafl"
find = name.find("sh")
print(find)
输出:
1
---------------------------------------
name ="ashshafl"
find = name.rfind("sh")
print(find)
输出 :3

字符串的函数方法

index
 和find 一样
  只不过找不到报错
   find找不到 返回-1
count 统计某个字符串出现的次数
replace("aa","bb")
split(" ",2) 2表示最多分隔的段数 2分成3段
partition("bb") 截取 但是bb还是当成一个片段保留
capitalize()
首字母大写
title 每个字母首字母大写
endswith(".txt") 
statarts.with(" ")
lower
upper
对其方式
不够空格填充
ljust(50)
rjust(50)
center(50)
去首尾空格
strip() (在java中是trim())
lstrip()
rstrip()
以换行作为分割符  \n
splitlines()
判断
isalpha
isdigit
isalnum
isspace
join

name =["afa","asdf","forrad"]
join = "_".join(name)
print(join)
输出:

afa_asdf_forrad

注:split() 默认以空格 制表符 \n 分开

列表有序可重复的集合

names[100,33,"dafwe"]
常用方法
添加插入合并
name =["afa","asdf","forrad"]
name2=["sd","rr"]
name.append("chanru")
name.insert(0,"sdf")
name.extend(name2)
计数
count = name.count("afa")
in和not in
name =[100,"afa","asdf","forrad"]
100 in name;
in_name = "afa" not in name
删除
name =[100,"afa","asdf","forrad"]
del  name[1]
name.pop()
name.remove("asdf")
print(name)

逆置
reverse()
排序
sort()



元组

定义后不能修改 不能增加

name=('aa','bb','cc')
name=('aa','bb','cc',name)
name里面能修改 name 不能修改


rang(1,10) 返回的是一个列表
for i in range(1,10)
python 3 里面是懒加载
 python 里的整数不限大小

字典

无序 没下标
就是map

d={"lin":89,"jin":34}
print(d)
print(d["lin"]) 没有会报错
d.get("lin")  没有返回空
d["bo"]=23
print(d)
del d["bo"]

函数

def 函数名():
    代码
def main():
    print("人")
main()

def main(d,d):
    print("人",d)
    print(type(d))
main("sdagd")
输出
人 sdagd
<class 'str'>


def main(d,dd):
    return d+dd

main1 = main(3, 4)
print(main1)
输出7

匿名函数

fun= lambda a, b: a + b
:后面是一个表达式
把函数当成一个变量
print(fun(2,3))
输出5

把函数当成参数传入
def test(a,b,c):
    return c(a,b)
print(test(2,3,lambda d,e:d+e))
 
排序和数据结构
mm=[{"name":"lin","age":13},{"name":"jin","age":14}]
mm.sort(key=lambda x:x["name"],reverse=True)
print(mm)

文件操作

f=open("D:\\",'w')
f.close
后面是文件访问模式
默认就是r
w r a 追加  ......
文本文件用上面
二进制文件用  rb 和wb 
如果是w 如果文件不存在就会创建一个新的文件
文本文件的定义 能直接通过gbk 等常用编码


f=open("text.txt",'r')
# f.write("shema af sdfd\tsagf")
read = f.read(4)
print(read)
f.close()
读取4个字节

当前指针指向的位置
tell = f.tell()

os

import os
name = os.name
print(name)

面向对象

class stu:
    name="df"
    age ="14"
#第一个参数必须是self
    def name (self):
        print("saaf")
        return "argfda"


s = stu()
print(s.name())

初始化方法  封装数据
之前还有一个___new__()方法构造对象


class stu:
    def __init__(self):
        self.name="zhang"
        self.age=13
        print("self")
s = stu()
print(s.age,s.name)

输出
self
13 zhang

------------------------------------
初始化传参
class stu:
    def __init__(self,name,age,weith):
        self.name=name
        self.age=age
        print("self")
s = stu("jin",15,134)
print(s.age,s.name)


tostring
-----------------------------------
class stu:
    def __init__(self,name,age,weith):
        self.name=name
        self.age=age
        print("self")

    def __str__(self):
     return  "+++++%s%s"%(self.name,self.age)
s = stu("jin",15,134)
print(s.age,s.name)
print(s)

py里
__xxx__
是有特殊功能的方法

继承

保护对象
属性之前加了 "__"就不能在类外面访问
就是 private
方法也是一样
class stu:
    def __init__(self,name,age,weith):
        if len(name)>6:
            self.__name = name
        else:
            print("密码不符合规定")
        self.age=age
    def get__name(self):
        return self.__name

s = stu("jgdfsgsgrzfxdfhy",15,134)
print("%s    %s "%(s.age,s.name))
# print("%s    %s "%(s.age,s.get__name()))
-----------------------------------------------------------------------
__del__()方法
销毁对象回调的方法
class stu:
    def __del__(self):
        print("del---------")


s = stu()
del s
print("============")
输出:
del---------
============


要等到对象的引用为0才回del 
否则   对象引用 -1

报错
TypeError: HH() takes 0 positional arguments but 1 was given
就是写方法没写self
继承
class peo:
    def HH (self):
        print("我是人")
class stu(peo):
    def __del__(self):
        print("del---------")
s = stu()
s.HH()
------------------------------------------和java 的构造方法有点区别
class peo:
    def __init__(self,a):
        self.age=a
        print(a)
    def HH (self):
        print("我是人")
class stu(peo):
    def __del__(self):
        print("del---------")
s = stu(13)-----这里调用的是peo的
s.HH()

多继承

和顺序有关

class peo:
    def HH (self):
        print("我是人")

class peo2:
    def HH (self):
        print("我是人2")

class stu(peo,peo2):
    def HH(self):
        print("del---------")
s = stu()
s.HH()
print(stu.__mro__)

del---------
(<class '__main__.stu'>, <class '__main__.peo'>, 
<class '__main__.peo2'>, <class 'object'>)


重写只要方法名字相同

和参数没关系

调用父类的方法
super().XX方法

多态

弱类型的语言 python 没啥多态效果

类属性

类似static
class peo(object):
    name="ren"
    __age=24 私有
----------------------------------------
class peo(object):
    name="ren"
    __age=24
    def __init__(self):
        self.name="ennn"
        self.__age=53

p = peo()
name = p.name
print(name)

优先是init 里的局部变量
然后是才是类变量
类属性
的修改和删除自能通过类名来修改
通过对象名和类名都能使用

类方法

    @classmethod
    def sdf(cls):
        print("class")
        return "he"

print(peo.sdf())

静态方法

class peo(object):
    @staticmethod
    def asdf():
        print("saf")
print(peo.asdf())

相关文章

  • python爬虫小记----百度翻译api的使用

    #python 爬虫小记1--百度翻译API使用偶遇python2与3的一些改变:cookielib 模块改名为 ...

  • python实现windows下的ls函数-用类进行代码重构

    结合13日和19日更的《python实现windows下的ls函数》和《python类相关装饰器小记》这两篇文章,...

  • docker运行python3.6+flask小记

    docker运行python3.6+flask小记 docker新手。 目的:开发运行多个web api项目的时候...

  • 闭包

    转载:[Python小记] 通俗的理解闭包 闭包能帮我们做什么? - Rei的博客 - CSDN博客

  • python小记

    refer:https://mp.weixin.qq.com/s?__biz=MzA4NjA4MTkzMw==&m...

  • python小记

    1.注意python版本。在使用python -m的时候,如果是在Python3环境下,改为python3 -m

  • python 小记

    同时读取多个文件 list 的疑惑 list的切片用extend方法添加元素,不会有任何结果,如果将(2)赋值给一...

  • Python小记

    有些问题,之前看了,也想顺了,理清了。但时间一长又忘了,又得回来重新理一遍,效率很低。这里就记下这些问题和思考后的...

  • python小记

    面向对象解释型语言 然后写代码声明可执行权限chmod u+x python文件名字.py执行./python文件...

  • linux个人小记

    linux个人小记 1.ubuntu下zip解压乱码 2.Python下mysql无法使用localhost进行连...

网友评论

      本文标题:python小记

      本文链接:https://www.haomeiwen.com/subject/zcwomctx.html