廖雪峰Python总结1

1.输入输出

输入?

2.文本编辑器中,需要把Tab键自动转换为四个空格,确保不混用Tab和空格。

3.数据类型和变量

1.整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(包括除法),而浮点数运算则可能会有四舍五入的误差。

2.字符串内部既包含'又包含"的话,可以用转义字符\来标识。可以用r来表示字符串不用转义

'I\'m \"OK\"!'
#表示的字符串是:
I'm "OK"!

3.如果字符串内部有很多换行,用\n写在一行不好阅读,为了简化,Python允许用'''..'''的格式表示多行内容,例如:

print('''Line1
...Line2
...Line3''')
#
Line1
Line2
Line3

4.空值是python中特殊的值,用None表示,None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

5.变量的赋值

6.除法运算

  • 10/3:
  • 10//3:整除,两个整数的除法任然是整数(只取除法的整数部分)

7.python的整数没有大小限制,浮点数也没有大小限制,但是超出一定范围就表示为Inf

4.字符串和编码

  • 在计算机内存中,统一使用Unicode编码,当需要保就存到硬盘或者需要传输时,就换成UTF-8编码
  • 用记事本编辑的时候,从文件读取的UTF-8字符被转换成Unicode字符到内存里,编辑完成后,保存的时候再把Unicode编码转换为UTF-8保存到文件
  • 浏览网页时,服务器会动态的把生成的Unicode内存转换为UTF-8在传输到浏览器

由于Python源代码也是一个文本文件,所以当源代码中包含中文时,在保存源代码是,就需要务必指定UTF-8编码,当Python解释器读取源码时,为了让它按照UTF-8编码读取,通常在开头写上这两行:

第一行注释是为了告诉LInux/OS X系统,这是一个Python可执行文件,Windows系统会忽略这个注释。

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则你在源代码中写的中文输出可能会有乱码

 5.“可变”的tuple

表面上看,tuple的元素确实变了,当其实变得不是tuple的元素,而是list的元素,tuple一开始指向的list并没有改成别的list,所以tuple所谓的“不变”是说:tuple中的每个元素,指向永远不变,指向一个list就不能之下你其他对象,但是指向的这个list本身是可变的。

6.str是不可变对象

 7.函数参数

必选参数在前,变化大的参数放在前面,变化小的参数放在后面,变化小的参数就可以作为默认参数。

默认参数必须指向不可变对象:

 

此外,当多任务环境下同时读取对象不需要加锁,同时读取一点问题都没有,我们在编程时,如果可以设计一个不变对象,就尽量设计成不变对象。

可变参数:

定义可变参数和定义一个list或tuple相比,仅仅在参数面前加了一个*号。在函数内部,参数接收到的是一个tuple,因此,函数代码不变,但是调用该函数时可以传入任意个参数,包括0个。例如:

def calc(*numbers):
    sum=0
  for i in numbers:
    sum=sum+n*n
  return sum

当已经有一个list或者tuple时,要调用一个可变参数的话,可以在list或者tuple前面加一个*号,把list或者tuple的元素变成可变参数传递进去,例如:

num=[1,2,3]
calc(*num)

*num表示吧num这个list的所有元素作为可变参数传递进去。

关键字参数

关键字参数语序在传入0个或者任意个含参数名的参数,这些关键字参数在函数内部自动组装成为一个dict。例如:

参数包含关键字参数**kw

使用命名关键字参数,要特别注意,*不是参数,而是特殊分隔符。如果缺少*,Python解释器将无法识别位置参数和命名关键字参数。

参数组合:

Python中定义函数,可以用必选参数,默认参数,可变参数,关键字参数,命名关键字参数,都可组合使用。但是可变参数无法和命名关键字参数混合。

参数顺序必须是:必选参数,默认参数,可变参数/命名关键字参数,关键字参数。

*args是可变参数,args接收的是一个tuple;

**kw是关键字参数,kw接收的是一个dict。

猜你喜欢

转载自www.cnblogs.com/pythonlearing/p/9750098.html