python3学习-python之不同于C/java

特性

1.首先,python是解释型语言,逐行解释执行
2.python字符串默认编码是unicode,可以使用字符串前加b来表示字节码b'abc',这样ascii字符就只会占一个字节

符号类

1.** 表示阶乘2**10=1024
2.单引号' ,和双引号" 都可以用来表示字符串,基本没有区别,但是单引号内双引号不需要转义,双引号内单引号不需要转义,可以通过在字符串前加r令其中文本全部不转义输出:r' '输出结果
3.三引号'''表示多行文本,和三双引号效果基本一致"""
4.//表示floor除,对结果向下取整,可使用浮点运算. /会把结果全部转为浮点数,即使是两个整数运算.
5.bool值 True/False不能用小写
6.:表示下文同一缩进格式内的代码是一段
7.and/or/not 而不是&&/||/!
8.动态变量,不需要定义类型,常数全大写表示(但是只是共识)
9.格式化输出 'Hi, %s, you have $%d.' % ('Michael', 1000000)
10.x=['','','']以表示一个列表/数组 x[-1]表示最后一个元素,y=('a','b','c')表示一个元组,一个元组不能修改
11.关键词elif
12.None
13.pass

函数

1.ord()函数表示得到字符的整数表示,chr()函数则相反
2.encode()可以将字符串转为其他格式的字节码'abc'.encode('utf-8'),decode可以将字节码转为字符串b'abc'.decode('ascii' [,errors='ignore'] )
3.len()函数获取长度
4.x=input('please:')输入函数,可以加字符串提示
5.for i in range(10): 循环语句
6.用def来定义函数
7.from (文件名不含py后缀) import (函数名)
8.isinstance(x,str)来判定x是否字符串

数据结构

1.d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} dict
2.s = set([1, 2, 3]),set容器,无序无重复元素

高级特性

1.切片slice: 可以用x[0:3]表示列表前三个元素,用x[0:10:2]表示前10个中每两个取一个.对于元组和字符串一样可以进行切片操作
2.迭代:对于容器可以进行迭代for(key in x)可以用于遍历dict x的键,用for value in d.values()来遍历值,for k, v in d.items()来遍历两者
3.列表生成器:[x * x for x in range(1,10) if x % 2 ==1]一行代码形成[1,9,25,49,81]列表 [m + n for m in 'ABC' for n in 'XYZ'],['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
4.生成器generator:将列表生成器最外面的[]改成()就变成了一个生成器,可以像列表一样遍历它,而不用浪费空间.生成器只在被用到时运算产生结果.
可以用yleid将函数改为一个生成器,这样,函数会在被调用时停在yelid的位置,下次执行从这里开始
5.可迭代对象Iterable是指可以用for循环遍历的 ,迭代器Iterator是指可以用next()函数生成下一个的.可以使用iter()函数将一个对象变成iterator

函数式编程

1.函数同时也是变量,因此,可以将函数赋值给变量,可以返回函数,也可以将函数作为参数.纯函数式编程是一种无副作用的更抽象的编程方法,更贴近于数学逻辑运算.
2.map(f,[]), map函数接收一个函数和一个列表,将列表中的每一项通过函数运算之后返回一个迭代器iterator.reduce(f,[])同理,但是reduce的函数接收两个参数,函数f依次对列表中元素两两运算最终返回一个值
3.filter(f,[])函数一样接收一个函数和一个列表,根据函数的返回时True还是False保留或丢弃列表中的元素,返回一个迭代器Iterator
4.sorted([],key=f,reverse=True)

参考:
廖雪峰的python教程

原文地址:https://www.cnblogs.com/bestefforts/p/11592466.html