Python3基础 学习笔记

入门容易熟练难,每一门语言都是这样。仗着c语言的基础觉得python语言特性掌握的差不多了,结果到真正敲代码的时候,不知从何下手,还得时不时补补课。我觉得应该再系统的看一遍,边自学边做笔记,发在博客上就是再把笔记整理一遍,再加深点印象。

自学主要是一本《python新手编程指南》和廖雪峰的官方网站,做的笔记也是主要摘录上面的。特别是廖老师的在线教程,讲的很好对我帮助很大,在此特别感谢。也推荐给大家 网站点这里

特么的,刚才要不是快完工了,结果火狐不给力重启了,木有保存啊呜呜呜
和写代码 没有ctrls直接把IDE关了一样,那是何等的卧槽啊
这次就只捡要点写了。


一、编码

python3中字符串是以unicode编码的
1. 单个字符的编码 ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

     >>> chr(66)     'B'           >>> chr(25991)     '文'

2. Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
       string=“123”     //string是str类型                                            string=b“123”    //string是bytes类型

以Unicode表示的str通过encode()方法可以编码为指定的bytes
    string=“123”  print(string。encode(“utf-8”)) 输出 b'123'

3. 纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围
4. 反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法

二、字符串方法

字符串在每个编程语言中都是重点处理的对象,看看python中的方法
None在python中为“无”的意思

quote="I'm runner" ,
quote.upper() 对应"I'M RUNNER",
quote.lower() 对应"i'm runner"
quote.title()  对应"I'm Runner"
quote.replace("I'm","you're")  对应“you're runner”

还有另外的几种方法:

  • swapcase() 将字符串的大小写互换

  • captalize() 将字符串的首字母大写其余小写

  • join()

                    letter=['f','d','h','f']
                    spl="#"
                    print spl.join(letter)
                    输出,f#d#h#f
    

    split函数与join相反
    “f#d#h#f”.split(“#”)

  • strip()函数用于去除字符串的首位字符
    无参数时去除空格符

  • startswith(values)与endswith(values)函数
    以values开头或者结尾 ,返回值为True,或者False

  • find(substr[, start][, end])与rfind(substr[, start][, end])

  • replace(old, new[, count])

  • makestrans(intable,outable)
    translate(table,del) table由makestrans生成 del是要排除的字符

三、输入输出

python3 只有input() 返回string类型
只有print([object, …][, sep=’ ‘][, end=’\n’][, file=sys.stdout])
print()
print(values,end=”“)
print(values,file=filename)

四、元组和列表

  • len()运算符
  • in运算符
  • 索引
  • 切片
    上面四种操作是元组,列表,字典共有的,集合(set)没有索引属性,而字典是通过key索引

    1. 创建空元组 tuple=() 或者tuple=tuple()
      tuple一旦初始化就不能修改 没有append(),insert()这样的方法。 可以正常地使
      用索引,但不能赋值成另外的元素。不可变

    2. 创建空列表 list=list() 或者list=[]

  • list.append(value) 将值value添加到list末尾
  • list.remove(value) 删除列表中第一次出现的value //删除不存在的值会出现错误,也可以用pop(i)代替
  • list.sort() 对元素排序,默认小值在前,可选参数reverse 是bool值,若设置为true 则以大值在前排序
  • list.reverse() 反转元素的顺序
  • list.count(value) 返回value的出现次数
  • list.index(value) 返回value第一次出现的位置编号 不在列表则报错
  • list.insert(i,value) 将value插入到位置i
  • 列表和元组可以互相嵌套
  • 二维数组 多维数组

五、字典和集合

  1. 创建空字典 dic={} 或者dic=dict()

    • 用key对字典索引如果key不存在,dict就会报错 一是通过in判断key是否存在 二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value
    • 要删除一个key,用pop(key)方法,对应的value也会从dict中删除
    • dict的key必须是不可变对象。
    • 先判断键是否在字典内,是则可以修改,否则可以添加,删除一个键值对 先用in判断key是否在字典内
  2. 创建空集合只能用set=set() 创建非空集合可以用花括号
    set是一种无序的, 不包含重复元素的结构

    • 一般用来测试是否已经包含了某元素,
      或者用来对众多元素们去重.
    • 与数学中的集合论同样, 他支持的运算有交, 并, 差, 对称差.
    • set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
    • add(key)方法可以添加元素到set中 remove(key)方法可以删除元素
    • 不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
  3. 堆栈 使用列表实现 append() 和 pop()方法
    队列实现不用列表 而是用collections.deque,塔为在首尾两端快速插入和删除而设计
     
    from collections import deque
    queue1=deque() 空队列
    queue2=deque([values1,values2,values3]) 创建时初始化
    queue3=deque(maxlen=10) 设置队列最大长度超过最大长度删队尾元素
    queue.append(value)
    queue.popleft() 删除队尾元素(就是最左边元素)
    queue.pop() 删除最右边元素,不用 在队列

六、函数

  • pass语句什么都不做 可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

  • 返回多个值其实是返回一个tuple,解包时注意一一对应

  • 在函数中可以不用声明就可以就读取全局变量的值,但不能进行修改
    global声明 global Value 就可以修改全局变量Value的值
    当你在函数中重新命名一个与全局变量的同名的变量,会把全局变量屏蔽

  • 函数参数传递的三种方式:
func ( arg1=1, arg2=2 ) 
func ( *args )           在函数内args是一个元组 tuple,不可变
func ( **args )          在函数内args是一个字典 dic
def func(x,y,*a,**b):
     x=1
     y=2
     print(x,y,a,b)
func(1,2,3,4,5,6,7,e=3,t=5,s=1)
输出:
1 2 (3, 4, 5, 6, 7) {'t': 5, 'e': 3, 's': 1}

常用的内置函数:
    abs(number):返回一个数的绝对值。
    chr(number):ASCII码转换为字符,相反的函数order
    divmod(num1, num2):求出商和余数,返回一个tuple. divmod(10,3)=(3,1)
    eval(source[, globals[, locals]]):求表达式的值
    excefile(object[, globals[, locals]]):exec语句用来执行储存在字符串或文件中的Python语句。
        例:exec('print("abc")') 输出'abc'
    filter(function or None, list):将list的每项按照function进行筛选。function中,如果需要某个值继续存在,返回值为True,反之用False。
    len(object):求一个对象的子项的个数
    map(function, iterable_objects):接收一个函数和一个可迭代对象(如列表)作为参数,用函数处理每个元素,然后返回新的列表。
    max():求最大项
    min():求最小项
    ord(character):字符转换为ASCII码,相反的函数chr
    pow(x, y[, z]):求幂(z为取模的可选项)
    range():生产一个列表
    repr(object):把对象转换为字符串,很多时候可以通过eval(repr(object))还原对象
    sum(list):求序列所有值的和
    type(object):查看数据对象类型
    range([start,] stop[, step]) -> range object:左开右闭。
    round(number[, ndigits]) -> number:把浮点数转变成指定小数位数的数
    hex(number):转化为十六进制的字符串
    oct(number):转化为八进制的字符串
    int(str):字符转换为数字函数
    float(object):将对象转化为浮点数。
    str(object):将对象转换为字符串


七、生成器(generator)和迭代器(Iterator)

八、 map(),fliter()&sorted() 和 lambda()

map()函数:接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

def f (x):
    return x*x
a=[1,2,3,4,5,6,7]
print (list(map(f,  a )))      还可以把list换成tuple,set      //输出[1,4,9,16,25,36,49]
print (list(map(str,  a )))     //输出['1', '2', '3', '4', '5', '6', '7']

常常需要用list()对map函数的返回值做进一步处理使其变为list对象。(python3)
map(function,sequence),map也常和lambda一起使用(提高逼格)。
fliter函数与map() 类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

sorted()

>>> sorted([36, 5, -12, 9, -21])
[-21, -12, 5, 9, 36]

>>> sorted([36, 5, -12, 9, -21], key=abs)
[5, 9, -12, -21, 36]          //abs函数作用于列表每个元素 ,产生一个映射 
//注意abs与abs() 的区别

>>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']


L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name (li):       // li是列表的元素,是tuple
    return li[0]
def by_score(li):       
    return li[1]
print (sorted(L,key=by_name))
print (sorted(L,key=by_score))
输出:
[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]

lambda()函数 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]

匿名函数就是:
def f(x):
    return x * x
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python3基础学习笔记(精品).pdf》是一本关于Python3基础学习的精品教材。该教材的内容包括Python3的基本语法、数据类型、控制流程、函数的定义和使用、文件的读写等基础知识点。 首先,教材详细介绍了Python3的基本语法规则,包括变量的声明和赋值、注释的使用,以及基本的运算符和表达式。通过学习这些基本语法,可以帮助读者快速掌握编写Python3程序的基本要素。 其次,教材系统地介绍了Python3的各种数据类型,如整数、浮点数、字符串、列表、元组、集合和字典等。对于每种数据类型,都给出了详细的说明和示例代码,帮助读者更好地理解和运用这些数据类型。 此外,教材还深入讲解了Python3的控制流程,包括条件语句、循环语句和异常处理等。这些控制流程在编写程序时非常重要,通过学习这些知识,读者可以写出更具有逻辑性和灵活性的程序。 教材还介绍了Python3的函数定义和使用方法。函数是程序的基本组织单位,学会使用函数可以提高代码的复用性和可读性。教材通过讲解函数的定义、参数传递和返回值等内容,帮助读者熟练掌握函数的使用。 最后,教材还介绍了Python3文件的读写操作。文件读写是程序与外部文件进行交互的重要方式,教材提供了读取和写入文件的的示例代码,帮助读者理解和掌握文件操作的基本方法。 总之,《Python3基础学习笔记(精品).pdf》是一本内容丰富、系统性强的Python3基础学习教材。通过学习这本教材,读者能够掌握Python3基础知识,并能够用Python3编写简单的程序。这本教材对于初学者来说是一本很好的学习资料。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值