Python入门笔记

1、List ------ 列表,python内置的一种数据类型,有序集合

(1)创建

L = []   or  L = ['bob','tom',100,true]

(2)访问

L[0]   L[1]   print (L[0])          ----- 正序             L[-1]   L[-2]    ------ 倒序

(3)添加

L.append('paul')   ---- 添加到最后            L.insert(0,'paul')   ----- 插入到索引号为0的地方

(4)删除

L.pop()   ----- 删除最后一个元素,并返回       L.pop(2)   -----  删除索引号为2的元素,并返回      print (L)

(5)替换

L[2] = 'paul'


2、tuple -------- 元组,与list类似,一种有序集合,区别:一旦建好,就不能修改

(1)创建

t = ('bob','tom','lili')          ------ () 替换[],没有append()\pop()\insert()方法     ------ 访问与list一样,但不能替换

t = ()  ---- 空元组     t = (1,)  ------  单元组,加逗号,避免与整数1发生歧义

(2)可变元组

t = ('a','b',['A','B'])    -----  L = t[2]     L[0] = 'x'     print (t)


3、dict  ----  也是集合

(1)概念



(2)访问

d[key]  ----- 访问value       L[索引]  ---- 访问元素

key不存在,会报错:KeyError     ------  解决方法:



(3)特点




(4)更新

在已有dict中加入新的key-value元素,即  d[key] = value

如果key已经存在,则赋值会更新之前的value值      -----   print(d)


(5)遍历

for key in d:------   for name in L:       -- 其中的变量name在for语句中定义                                

print(key)-------          print(name)


4、set   




(1)创建  ------  调用set()并传入一个list            ------  set会自动去掉重复的元素

s = set(['A','B','C'])        print(s)


(2)访问   ----- set是无序的,不能用索引访问       

‘Bart’ in s   ------  访问即判断一个元素是否在set中,用in操作符判断


(3)特点



(4)遍历  ----  与list类似

for name in s:

print(name)


(5)更新  ----  用add()可以直接添加,而remove()前需判断

s.add()  ---- 添加元素,如果已存在,不报错也不会加进去    s.add(4)

s.remove()  ----- 删除元素 ,如果不存在,则报错      s.remove(4)


5、基础语句

(1)if语句  ---- 注意事项



(2)for循环  



(3)while循环



(4)break语句  -----  直接退出循环


(5)continue语句  ----- 跳过后续循环,直接进行下一次循环


6、函数   


(1)常用内置函数  ----- https://docs.python.org/3.5/library/intro.html

a、绝对值函数  abs(x)

b、比较函数  cmp(x,y)

c、数据类型转换函数  int(),str()

d、字符串返回大写字母 upper()      x.upper()

e、判断变量是否是字符串 isinstance(x,str)


(2)自定义函数


如果没有return 语句,函数执行完后也有返回结果,即None


(3)math包  ---  提供sin()/cos()\sqrt()函数

         import math


(4)递归函数  -----  使用时需注意防止栈溢出


汉诺塔  -------  函数 move(n, a, b, c) 的定义是将 n 个圆盘从 a 借助 b 移动到 c。

def move(n,a,b,c):
    if n == 1:
        print(a,'->',c)
        return
    move(n-1,a,c,b)
    print(a,'->',c)
    move(n-1,b,a,c)
move(2,'A','B','C')

  • 很简单的
    第一步:把n-1个圆盘从 A借助C移动到 B move(n-1,a,c,b)
    第二步:把剩余的第n个圆盘从 A移动到C A --> C
    第三步:把移动到B的圆盘借助A从 B移动到C move(n-1,b,a,c)
    搞定!
(5)默认参数

函数的默认参数作用是简化调用,你只需要把必须的参数传进去。但是在需要的时候,又可以传入额外的参数来覆盖默认参数值。.由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必须参数后面。eg:

# OK:
def fn1(a, b=1, c=2):
    pass
# Error:
def fn2(a=1, b):
    pass


(6)可变参数  ----- 可变参数的名字前面有个 号,我们可以传入0个、1个或多个参数给可变参数:

def fn(*args):              ---- fn()   ---f('a')    ----f('a','b')


7、切片

(1)List切片   ----- 与tuple切片一样


L[0:3]  or L[ :3]   ------  从索引0开始取到索引3为止,但不包括索引3

L[ : ]    ------ 从头到尾

L[ : : 2]  ------ 第三个参数表示每N个取一个

L[-2: ]   ------ 倒序切片


(2)字符串切片 ----- python 中没有对字符串截取的函数

‘ABCDEFG’[ :3]       'ABCDEFG'[-3: ]       'ABCDEFG'[ : :2]


(3)s.upper()  ---- 字符串中字符变为大写字母的方法


8、迭代

(1)概念




(2)索引迭代  ---  由enumerate()函数自动把每个元素变为(index,element)的tuple,再迭代,才同时获得了索引和元素本身

python中,迭代永远是取出元素本身,而非元素的索引

 


(3)zip()函数  ------  可以把两个list变为一个list

>>> zip([10, 20, 30], ['A', 'B', 'C'])
[(10, 'A'), (20, 'B'), (30, 'C')]

(4)迭代dict的value    ---- d.values(),将dict转换为一个包含所有value的list    -----d.itervalues() 与 d.values()效果一样



(5)迭代dict的key和value   -----  items()方法,把dict对象转换为包含tuple的list,可以同时获得key和value



9、列表生成式


(1)生成列表

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


[1*1,2*2,3*3,...,10*10]  ------  L = [] ------ [x*x for x in range(1,11)]

      for x in range(1,11)

      L.append(x*x)


(2)复杂表达式



                                         

  • tr代表一行 以<tr>开始,</tr>结束
    td代表一格 以<td>开始,</td>介绍 中间的style就是颜色了
    <tr><td>%s</td><td style="color:red">%s</td></tr>就代表有一行,有2个格子,第二个格子用红色显示!

在生成的表格中,对于没有及格的同学,请把分数标记为红色。

提示:红色可以用 <td style="color:red"> 实现。


d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
    if score < 60:
        return '<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)
    return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
tds = [generate_tr(name, score) for name, score in d.iteritems()]
print '<table border="1">'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'


(3)条件过滤

[2*2,4*4,...,10*10]    ------  [x * x for x in range(1,11) if x % 2 == 0]


(4)多层表达式

['A1','A2','A3','B1','B2','B3','C1','C2','C3']  ------- >>> [m + n for m in 'ABC' for n in '123']     >>> L = []

    for m in 'ABC':

             for n in '123':

L.append(m + n)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值