廖雪峰python摘录3

1、if判断条件还可以简写x。只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False

2、这是因为input()返回的数据类型是strstr不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情:

s = input('birth: ')
birth = int(s)
if birth < 2000:
    print('00前')
else:
    print('00后')

  或者 s>'2000' 也可以,需要类型一致才能比较。

要是int()函数发现一个字符串并不是合法的数字时就会报错,程序就退出了。

4、Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来。所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。

5、Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数

6、二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环。continue 继续循环。continue的作用是提前结束本轮循环,并直接开始下一轮循环。不要滥用breakcontinue语句。breakcontinue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到breakcontinue语句。

7、Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

注意要用冒号!   d={“Mike”:100,"Jack"::97}

8、要删除一个key,用pop(key)方法,对应的value也会从dict中删除

9、

和list比较,dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。v

10、在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

11、set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作。&交  | 并

12、所以,对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

 13、一是必选参数在前,默认参数在后,否则Python的解释器会报错(思考一下为什么默认参数不能放在必选参数前面)

也可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上。 

14、 定义默认参数要牢记一点:默认参数必须指向不变对象!我们在编写程序时,如果可以设计一个不变对象,那就尽量设计成不变对象。

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

16、*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

 >>> nums = [1, 2, 3]

>>> calc(*nums)

14

17、可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。   它可以扩展函数的功能。

18、在Python中定义函数,可以用必选参数、默认参数、可变参数(*a:1,2,3,'a','b','c',限制列表格式)、关键字参数(**a;city='a',b='c',限制字典格式)和命名关键字参数(*,a:a='c'限制a),这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

19、如果一个函数在内部调用自身本身,这个函数就是递归函数。

20、Python标准的解释器没有针对尾递归做优化,任何递归函数都存在栈溢出的问题。

21、

在Python中,代码不是越多越好,而是越少越好。代码不是越复杂越好,而是越简单越好。

基于这一思想,我们来介绍Python中非常有用的高级特性,1行代码能实现的功能,决不写5行代码。请始终牢记,代码越少,开发效率越高。

22、字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串。

23、认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()

(输出什么看.values()  .items(),和for之后的无关)

24、由于字符串也是可迭代对象,因此,也可以作用于for循环。任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环。


原文地址:https://www.cnblogs.com/xflqm/p/7460756.html