zoukankan      html  css  js  c++  java
  • Python学习——小知识点

    1.可变参数*args和关键字参数**kwargs  参数前的*和**

    *args 可以表示在调用函数时从迭代器中取出位置参数, 也可以表示在定义函数时接收额外的位置参数。多出来的当列表。

    **kwargs 表示字典和键值对的 **,表示的是值。多出来的赋值类型当字典

    def func(a,b,*c,**d)

    func(1,2,3,4,5,6,x=1,y=2)  相当于a=1,b=2,c=[3,4,5,6],d={x:1,y:2}

    2.正则表达式的[ ]里面的^是非的意思

    3.常见的错误类型

    AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
    IOError 输入/输出异常;基本上是无法打开文件
    ImportError 无法引入模块或包;基本上是路径问题或名称错误
    IndentationError 语法错误(的子类) ;代码没有正确对齐
    IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
    KeyError 试图访问字典里不存在的键
    KeyboardInterrupt Ctrl+C被按下
    NameError 使用一个还未被赋予对象的变量
    SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
    TypeError 传入对象类型与要求的不符合
    UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
    导致你以为正在访问它
    ValueError 传入一个调用者不期望的值,即使值的类型是正确的

     4.Python2默认的编码解码方式是ascii码,这个与第五条可以连起来看,就是说头部声明为 coding:ascii。python3中就是默认为utf-8.

    5. 在程序头部声明 coding:utf-8 ,是让程序在保存的时候或者在读取的时候,使用utf-8进行理解,读取和存储。但是程序自己在运行的时候,是遵循本身的规则的,头部声明不会影响程序内部的实际数据类型

    6. Python2 中,str类型的实质就是bytes类型,所以可以decode(utf-8)来转换为Unicode,但是不可以encode()。Unicode类型的本质就是Unicode。

      python3中,bytes类型的实质才是bytes类型,str类型的本质变成了Unicode。所以这里的str只能够encode()。

    7,编码解码方式的含义,比如utf-8或者gbk等等,这些都是计算机读取理解程序文字的方法,不会影响程序内部实际的数据类型。

    8. socket 的方法里面。socket.send()和socket.recv()都是只能发送bytes类型的数据。同时连续socket.send()会出现粘包的可能性。即服务器端你调用时send 2次,但你send调用时,数据其实并没有立刻被发送给客户端,而是放到了系统的socket发送缓冲区里,等缓冲区满了、或者数据等待超时了,数据才会被send到客户端,这样就把好几次的小数据拼成一个大数据,统一发送到客户端。

    但是在通过连续发送的时候,中间插入一次socket.recv(),由于recv(),缓冲区里面的数据被全部发送,从而避免粘包的出现。

     9.同时获取列表的序号和内容(enumerate,前面是序号,后面是内容):

    for index, line in enumerate(test):

            if index == 9:

                print('The 10th line is:', line)
    10.socketserver模块就是socket模块的封装。

    11. 同步执行——就是串行;异步执行——就是并行

    12.脚本中目录前面加上r是为了,r是保持字符串原始值的意思,就是说不对其中的符号进行转义。

    13.while 0相对于while False;while 1相当于 while Ture,所以啊,可以用这个形式来表示随机:while randint(0,1):

     



  • 相关阅读:
    关于__attribute__[转]
    Boost Posix Time
    c++ explicit构造函数[转]
    C++11 多线程:数据保护[转]
    C++ int,char,string,CString类型转换(整理总结)
    C和C++如何来编写时间的程序[转]
    设置CentOS防火墙开放端口
    SSH框架
    20060518: Alert!
    yum命令时出现Error: xz compression not available问题。
  • 原文地址:https://www.cnblogs.com/Ian-learning/p/8452955.html
Copyright © 2011-2022 走看看