Python3学习笔记

最近在起步学Python,聚合一下这个过程中搜集的资源和对一些基本知识做个小总结,语法基于Python3,方便以后查找。

Python官方文档 https://docs.python.org/3/index.html
不错的基础课程(基本语法、算法、建模) http://open.163.com/special/opencourse/bianchengdaolun.html
不错的在线教程 http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
练习 http://www.pythontip.com/

以下是整理常用可能遗忘的基础点

输入

python3中的输入是input(),获得用户输入的字符串

>>> a = input("please input your name: ")
please input your name: Wu
>>> a
'Wu'

如果需获得用户输入的数据,加入强制类型转换即可

>>> a = int(input("please input an integer: "))
please input an integer: 55
>>> a
55

在python2中获得输入字符串的函数是raw_input(),在python3中已将其移除

标准库

对于标准库的用法,随着python版本的更新而不断更新,如需要应在官网查看更新,如在python2中,使用字符串操作需要导入,如from string import *,在python3中,则不需要,可以直接使用

>>> str.find("atgacatgcacaagtatgcat", "atgc")  #查找关键字atgc在目标序列中的位置
5

官网的所有标准库用法说明 https://docs.python.org/3.6/library/

递归

用递归方法编程的要点:
1.确定达到条件退出的基本事件
2.确定每次递归的运算
3.确定递归的变量

def  countSubStringMatchRecursive(target, key):  #用递归方法求出关键字key在target中出现的次数
    n = 0
    return Recursive(target, key, n)

def  Recursive(target, key, n):                   
    a = str.find(target, key)                    #第二步,确定每次递归的运算
    if a == -1:                                  #第一步,确定条件退出的基本事件
        return n
    else:
        n += 1
        return Recursive(target[a+1:], key, n)   #第三步,确定递归的变量

tuple与list

一言之,tuple的元素不能进行增删改,而list可以进行操作。 另外tuple的不变是指每个元素的指向不变,如果tuple里面的元素包含list,则也会改变(见标题链接)。如想不出现这种问题,则避免这种套用。
tuple和list可以相互转换

>>> list((1,2,3))       #tuple转换为list
[1, 2, 3]
>>> tuple([1,2,3])      #list转换为tuple
(1, 2, 3)

排序算法

比较几种排序算法对弄懂算法复杂度的等基本概念很有帮助,推荐一篇对算法总结不错的博客 http://www.cnblogs.com/feixuelove1009/p/6143539.html

异常处理

异常处理这部分目前还不是理解得很透彻,需要更多的实践来理解。这是一篇总结得比较好的博客 https://betacat.online/posts/2016-12-4-Python-exception-handling/

判断变量类型

判断变量类型有type()和isinstance()两种方式,不同之处在于

class A:
    pass

class B(A):
    pass

isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

对于新式类则type方式无效,因此强烈建议用isinstance()判断而不用type()

其它一些遇到的问题

1.当tuple和list按索引读取元素时均用中括号,否则会报如下错误

TypeError: 'tuple' object is not callable

2.使用 in 判断元素是否在tuple内,in 的运算级比运算符要低

>>> 1 in (1,2,3) == True      #没加括号时先计算后面,错误
False
>>> (1 in (1,2,3)) == True    #正确
True
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值