博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习笔记
阅读量:5258 次
发布时间:2019-06-14

本文共 3029 字,大约阅读时间需要 10 分钟。

 在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 - Adam1 - Lisa2 - Bart3 - 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 : 85Adam : 95Bart : 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

你可能感兴趣的文章
前台freemark获取后台的值
查看>>
Spring-hibernate整合
查看>>
exit和return的区别
查看>>
Django 相关
查看>>
Python(软件目录结构规范)
查看>>
codeforces水题100道 第二十二题 Codeforces Beta Round #89 (Div. 2) A. String Task (strings)
查看>>
c++||template
查看>>
条件断点 符号断点
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
关于收费软件
查看>>
javascript之Style物
查看>>
Factory Design Pattern
查看>>
P1192-台阶问题
查看>>
一、使用pip安装Python包
查看>>