Python敲重点

最近对于Python开始有了些逐渐的了解以及深入学习,学习相关网站均来自廖学峰廖老师的个人官方网站,文末进行一个传播分享,觉得是
Python入门级最好的学习方式,相关练习题也很赞,当然,对于这么多知识点是不可能一下子全部吸收的,所以最好是结合大数据例子以及
对项目的操作熟练程度来提高对知识的吸收。
以下为个人整理的一些相关比较重要的知识点,并会随着知识的深入进行一些适当的更新:

1.除法中,’/’计算所得结果为浮点数,’//’计算结果为整数
print(10/3,10//3)
计算所得结果为
3.3333333333333335 3


2.网络传输采用比特流,所以若在网络上传输或者保存在磁盘上,就需要把str变为以字节为单位的bytes


3. break和continue必须配合if语句使用,但不可多用且不建议使用,会造成代码分支过多,影响阅读性及执行性能


4. input()函数返回数据类型为str,不要引用错误


5.判断键值对中的key是否存在的两种方法

name={'Mary':18,'Sara':20}

#第一种方法,采用in判断
'Mike' in name   #False

#第二种方法,使用get()函数
name.get('Mike')      #None
name.get('Mike',-1)   #-1

6. str,tuple是不可变对象,list是可变对象,set存放不可变对象
针对str的replace方法说明

a='abc'
a.replace('a', 'A')
print(a)

得到输出结果仍为’abc’
这是因为,a是变量,而’abc’才是字符串对象,a指向的对象的内容是’abc’,调用方法replace是作用在字符串对象’abc’上的,是创建了一个新字符串’Abc’并返回,变量a仍指向原有的字符串’abc’


7.函数可以返回多个值,但其实是返回一个tuple

def move(a,b):
   return a,b
x,y=move(2,7)
print(x,y)       #2 7
r=move(2,7)
print(r)         #(2, 7)

8.数据类型检查可用函数isinstance()实现

i = 'a'
print(isinstance(i,(int,float)))     #False

9.默认参数必须指向不可变对象,如str,None ··· 这样在多任务环境下同时读取对象不需加锁


10.可变参数将参数自动组装为一个tuple,关键字参数则在内部自动组装为一个dict


11.命名关键字参数的存在是为了限制参数名的同时提供默认值


12.在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。解决递归调用栈溢出的方法是通过尾递归优化,即在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。

#普通阶乘递归写法
def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)
#尾递归阶乘写法
def fact(n):
    return fact_iter(n, 1)

def fact_iter(num, product):
    if num == 1:
        return product
    return fact_iter(num - 1, num * product)

13.汉诺塔 简单实现

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

输出结果

A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C

廖学峰Python教程链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值