python学习笔记

 在pycharm中解决中文输入注释报错的问题,直接在文件的开头加入代码#encoding=utf-8

 Python 语言中的五种基本的对象类型   

  字符串(string)简记str使用“”或者‘’括起来的一系列字符

  整数简记int

  浮点数float

  布尔数简记bool

  复数

字符type用来查看数据的类型

元组不允许二次赋值

一定要严格控制住缩进的格式

Python的缩进代表着代码块

Python的数据类型转换

 

List 的倒叙访问,从-1开始

对list中的元素替换直接对元素重新赋值

Tuple(元组)其中的元素一旦赋值便不可更改,但是如果touple中包含了列表,则此时列表中的元素依然可以改变

Python 的习惯写法,一般写代码块的时候缩进4个空格,退出代码块是要注意多敲一行回车

Range函数的特点range(start,stop,step),注意range函数中的结束位stop不包含在内

len 函数返回的是列表元素的个数

循环使用else语句

  在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的,如果break跳出了for循环就不执行else)的情况下执行,while … else 也是一样。

  python 中的元字典(dictory)包括键(key),键值(value)

  花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略 dic = {key:value,key1:value1}

  访问dict,通过dict的键调用键值,如果键不存在就会报错,如何避免错误呢,通过if ‘xiaoli’in d :或者通过d.get('xiaoli')来判断

注意dict内部的存储是无序的,不能用来存储有序的集合
set中包含一系列的元素,元素是无序的并且是不重复的,set的定义 s  = set([1,2,3,4])

set的遍历 利用for判断语句,for遍历set时是无序的。

set的更新与删除:更新是用set.add(),删除时用set.remove(),注意删除是要先判断set中是否有删除的元素。

编写函数:

编写函数要用到def,依次写出函数名、括号、括号中的参数和冒号: 函数可以返回多值,其实就是返回一个元组,按照对应的位置赋予值。

一个函数可以调用其他函数,如果函数在自己的内部调用自己,那这个函数就是递归函数

使用递归函数要注意防止栈的溢出

 定义默认的函数如int('123',8)

     >>>83

  定义可变的参数,根据需要可以定义一个参数的个数可以改变的函数如 def fn(*arg)。可变的参数之前要有*表示是可变的参数,其实就是将传入的几个参数看做了一个touple。

迭代

  对于一个集合可以利用for in 语句进行迭代操作

    索引迭代:对于有序的集合,都是有索引的,可以通过

使用 enumerate() 函数

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> for index, name in enumerate(L):
...     print index, '-', name
... 
0 - Adam
1 - Lisa
2 - Bart
3 - Paul

使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。但是,这不是 enumerate() 的特殊语法。实际上,enumerate() 函数把:

['Adam', 'Lisa', 'Bart', 'Paul']

变成了类似:

[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]

因此,迭代的每一个元素实际上是一个tuple:

for t in enumerate(L):
    index = t[0]
    name = t[1]
    print index, '-', name

如果我们知道每个tuple元素都包含两个元素,for循环又可以进一步简写为:

for index, name in enumerate(L):
    print index, '-', name

这样不但代码更简单,而且还少了两条赋值语句。

可见,索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。

迭代dict的key和value

我们了解了如何迭代 dict 的keyvalue,那么,在一个 for 循环中,能否同时迭代 key和value?答案是肯定的。

首先,我们看看 dict 对象的 items() 方法返回的值:

>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
>>> print d.items()
[('Lisa', 85), ('Adam', 95), ('Bart', 59)]

可以看到,items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,可以同时获得key和value:

>>> for key, value in d.items():
...     print key, ':', value
... 
Lisa : 85
Adam : 95
Bart : 59

和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。

   

生成列表

要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],我们可以用range(1, 11):

>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

但如果要生成[1x1, 2x2, 3x3, ..., 10x10]怎么做?方法一是循环:

>>> L = []
>>> for x in range(1, 11):
...    L.append(x * x)
... 
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

这种写法就是Python特有的列表生成式。利用列表生成式,可以以非常简洁的代码生成 list。

写列表生成式时,把要生成的元素 x * x 放到前面,后面跟 for 循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。

转载于:https://www.cnblogs.com/xiaoli2018/p/4334289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值