zoukankan      html  css  js  c++  java
  • 基础

    python的PEP8规范

    1、 变量名,函数名,方法名的命名

    1) 命名的名字要力求见名知意;

    2) 命名不要和python的关键字(比如while)和内建字重名(比如int);

    3) 不能以数字开头,只能由字母,数字和下划线组成;

    4) 常量字母都大写,一个单词描述不下可以用下划线连接多个单词来描述。

    2、 缩进,空行以及单行字符数要求

    3、 脚本第一行指定编码:# -- coding: utf-8 --

    4、 编写程序时,尽量少使用全局变量,易于维护,且对于常量可统一定义在配置文件。

    5、 不要在一句import中多个库,比如import os, sys不推荐

    导入语句一般顶头写。如果写多个导入语句,建议先写导入内建的模块,然后再导入的第三方模块,最后写导入自定义模块。
    7、 在if/for/while语句中,即使执行语句只有一句,也必须另起一行。比如if 3>2:print("ok"),这种写法虽然没错,但是不推荐,需要把print语句另起一行。
    8. 尽可能使用'is''is not'取代'',比如if x is not None 要优于if xNone。

    1.格式化输出

     msg = '你好%s,我是%s'%('少年','meet')
     print(msg)
    
    变量

    %s %d %%
    f'{变量名}' 3.6以上

    name=input(‘jjlk’) 
    age = input(‘12’)
    msg = f'姓名:{name},年龄:{age}'  #python3.6版本以上
    print(msg)
    s=’{}{}’.format(1,2)
    print(s)
    

    ‘’.join(s) 字符串拼接

    2.not>and>or

    X and y And : 同真为真,取后边,有一个假即为假,同假取前边
    X or y Or : 同真取前边,有一个真即为真,同假取后边

    3.编码

    utf-8 转成Unicode 是解码
    ascii 美国 256 没有中文
    一个字节 8位

    gbk 中国
    英文 1字节 8位
    中文 2字节 16位

    unicode 万国码
    英文 2个字节 16位
    中文 4个字节 32位

    utf-8 可变编码
    英文 1字节 8位
    欧洲 2字节 16位
    亚洲 3字节 24位

    4.索引

    获取s字符串中所有内容
    m[:]
    m ='人生若只如初见'
    print(m[6:2:-2])
    print(m[2:7:2])

    5.字符串 不可变

    s1 = 'Alex'
    s1 = s.capitalize()  首字母大写
    print(s1)
    s.capitalize()  # 首字母大写
    print(s.title())  # 特殊符号分割的每个单词首字母大写
    s.upper()       #  全部大写
    s.lower()       # 全部小写
    print(s.count('L'))  # 返回的是数量
    
    print(s.endswith('x'))  # 以什么结尾  结果为true or false
    print(s.startswith('a'))  # 以什么开头
    print(s.find('p'))  #通过元素查找下标  查找的没有返回-1
    print(s.index('p'))   #通过元素查找下标  查找的没有就报错
    
    s.format()添加
    s='njkj,{a},{b}'  字符串形式
    print('_'.join(s))
    

    答案:n_j_k_j_,{a},_{b}

    S=[‘hj’,’hgjh’]     列表形式
    Print(‘_’.join(s))
    

    答案:hj_hgjh
    For 循环

    li = ["alex", "wusir", "taibai"]
    #msg = ''
    #for i in li:
      #msg = msg + i+'_'
    #print(msg[0:-1])
    print('_'.join(s))  
    
    s.split('x'))  #分割 (没了)
    s. strip('   a'))   #脱  脱头尾两边的(空格 换行符)东西
    s.replace(‘a’,’b’)第一个放要被替换的 第二个是替换的内容 
    print(s.swapcase())    # 大小写转换  里边不用填东西
    s.isdigit()  #判断是不是纯数字
    s.isalpha()#判断是不是只有字母和数字
    s.isspace()  #判断是否为空    
    

    6.列表 不可变数据 有序的

    可hash的(int, str, tuple,bool)

    Append(‘画江湖’)    #添加   在末尾添加
    insert(3,’成交价’)   # 插入 第一个位置插入为下标,第二个位置插入为内容
    extend()    #迭代添加整型和布尔值不能迭代
    print(lst1+lst2)    #列表的合并  
    

    Del  lst[2]     #通过下标删除
    Del  lst[0:3]    #切片删除
    Remove()      #通过内容删除
    Pop()    #没有指定,默认删除最后一个,可以指定下标删除
    Clear()     #清空
    Ret=lst.pop(2)  #可以指定下标,有返回值    
    

    Lst[2]=’hjk’   #通过下标改    ************
    Lst[0:3] =’新得内容’   #通过切片改
    Lst[0:5:2] =’新的内容’  #切片+步长   长度要统一
    

    For 循环
    Print(Lst[2])    通过下标查
    

    其他操作

    Reverse()   #翻转  括号里不加内容
    Sort()          #排序  升序
    Sort(reverse=True)
    

    sort 排序,是属于列表的方法,在原列表基础上直接排序
    sorted 排序,是内置函数,排序后会生成一个新的变量,不会在原变量的基础上修改

    Index()  通过内容获取下标
    Count()   计数
    

    7.元祖: 不可变数据 有序 有下标

    Counter:计数   
    index:通过元素找下标
    Tu=(‘jnjknk’,1,23)   元祖没有增删…
    print(tu[0:5])
    

    元祖切片结果也是元祖
    元祖不可修改,可以转变成列表,再进行增删…

    Tu=list(tu)
    Tu.append(‘njnk’)
    Print(tu)
    

    查看类型
    Tu=() 空的和有逗号是元祖 有数据为数据类型
    Print(type(tu))

    8. 字典 键不能重复,重复的话就会把值覆盖,键是不可变的

    Dic={‘键’:’值’}

    dic[12]=’小米’   通过键查找值
    dic.setdefault(11,'华为')   # 17 键  华为 值
    dic[(1,2,3)].setdefault('k4','v4')
    1.先去字典中通过11这个键去查有没有值  就是None
    2.如果是值  就不进行添加
    3.如果是None, 就添加   返回的是添加的值
    

    Dic[1]   通过键删除
    print(dic.pop('25'))    # pop 通过指定键删除  pop也有返回值,  返回的是被删除的值
    dic.clear()  # 清空
    print(dic)
    dic.popitem()   # 随机删除  python3.6 删除最后一个   3.5 中随机删除
    print(dic)
    dic2.update(dic1)
    # 更新   被更新的内容如果在 要更新的内容中那值就会被覆盖
    

    dic2['33'] = 'tsp'   #是字典中没有的时候才叫增,如果字典中这个键存在就叫做修改
    print(dic2[2])          # 通过键查找 值  如果键不存在就报错
    print(dic2.get(2))        # 通过键查找值    如果键不存在不会报错,返回None
    print(dic2.setdefault('33'))   # 不存在返回None
    

    其他操作
    获取键
    for i in dic2:
    print(i)

    for i in dic2.keys():
          print(i)
    

    获取值
    for i in dic2:
    print(dic2.get(i))

    for i  in dic2.values():
         print(i)
    

    获取 键值
    for i in dic2.items():
    print(i)

    解构
    a,b,c=’1,2,3’ true,False,True  '456'  [7,8,9]  (7,8,9) {'1':8,'2':9,'3':0}
    # print(a)
    # print(b)
    # print(c)
    

    9.set{ } 天然去去重 不能用下标,有增删… ,可变数据

    Se={1,2,3,1,5}
    Print(se)
    

    例:面试题先去重再转换成列表
    lst=[1,2,3,1,5]
    print(list(set(lst)))

    se.add(6)
    

    se.update([1,23,34])   # 可迭代对象
    se.update(‘123’)   
    

    结果{‘1’,’2’,’3’}

    se.clear()
    print(se.pop())
    se.remove(4)   # 通过内容删除
    
    S1 = {1,2,2,3,89}
    s2 = {1,25,2,3,69}
    print(s1 & s2)  # 俩个共有的
    print(s1 | s2)  # 两个合并(去重后的)
    print(s1 - s2)  # 显示前边有,而后边没有的,(以前边为主)不显示共有的   {89}
    print(s1 ^ s2)  # 显示不共有的  {89, 69, 25}
    

    Rang 范围

    Python3中 原生态

    print(range(0,10))    
    

    结果为range(0,10)

    Python3中range为可迭代对象
    Python2:分为range xrange

    range(1,9)  列表  结果为[1,2,3,4,5,6,7,8,] 
    Xrange(1,9)  原生态  结果和python3中一样,都是可迭代对象   xrange(1,9)
    

    Python3中

    print(list(range(1,9)))        
    

    结果为[1,2,3,4,5,6,7,8,]

    range和切片一样顾头不顾尾

    For i in range(0,10,2)
      Print(i)      
    

    结果为0,2,4,6,8
    range可以让for循环来循环数字(求奇数偶数)

    冻结集合frozenset

    s=frozenset([1,2,3,1,5])
    print(s)    
    

    结果 frozenset({1, 2, 3, 5})
    # dic={{1,2}:'你好'} 错的
    dic={s:'你好'}
    print(dic)
    结果:{frozenset({1, 2, 3, 5}): '你好'}

  • 相关阅读:
    tcp socket
    Spring MVC 复习笔记01
    Spring 复习笔记01
    mybatis 复习笔记03
    ActiveMQ实现负载均衡+高可用部署方案(转)
    JVM复习笔记
    JAVA NIO复习笔记
    java IO复习笔记
    并发编程复习笔记
    杂记复习笔记
  • 原文地址:https://www.cnblogs.com/xm-179987734/p/12295417.html
Copyright © 2011-2022 走看看