目录
Python特点
Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
- Python是一种解释型语言:开发过程中没有了编译这个过程。
- Python是交互式语言:可以在一个Python提示符“>>>”后直接执行代码。
- Python是面向对象的语言:Python支持面向对象的的风格或代码封装在对象的编程技术。
关键字
‘False’, ‘None’, ‘True’, ‘__peg_parse__’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’‘, else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’
关键字 | 描述 |
---|---|
end | 将输出结果输出在同一行,或者在输出末尾添加不同字符 |
pass | pass时空语句,为了保持程序结构的完整性,pass不做任何事情,一般用作占位语句 |
注释
- 单行注释:以“#”开头
#单行注释
- 多行注释:单引号或者双引号
'''
单引号多行注释
'''
"""
双引号多行注释
"""
数据类型
数据类型 | 例子 |
---|---|
整数 int | -100 |
浮点数 float | 3.14 |
字符串 | ‘hello’ |
列表 | [-100, 3.14, ‘hello’] |
字典 | {‘cat’ : 1, ‘dog’: 2} |
长整型 | 1000000000000L |
布尔型 bool (bool是int的子类) | True,False |
元组 | (‘python’, 1) |
集合 | {1, 2, 3} |
相关函数: |
- type():查看数据类型
字符串(String)
- 使用单引号和双引号的字符串完全相同
- 使用三引号’''或者"""可以指定一个多行字符串,多行注释
- 转义符:\
- 反斜杠可以转义,使用r可以使转义不生效,如:r’‘this is a line with \n’这里的\n会直接输出,这里的r指的是row,即row string,意思为输出字符串为一行
- 按字面意义级联字符串,如"this" “is” “string"会自动转换成"this is string”
- 可以用+运算符连接字符串,使用*运算符重复输出
- 字符串有两种索引方式,从左往右以0,1,2…开始,从右往左以-1,-2,-3…开始
- python中的字符串不能改变(Number用于存储数值,也是不允许改变)
- python中没有单独的字符类型,一个字符就是一个长度为1的字符创
- 字符串的截取语法格式:变量[头下标:尾下标:步长
- print()默认是换行输出,添加end=" "不换行,如print(‘test’, end=’ ')
str='123456789'
print(str) #输出字符串:123456798
print(str[0:-2]) #输出从左边第一个到倒数第3个:1234567
print(str[2]) #输出第三个字符:3
print(str[2:5]) #输出第三个到第五个字符(包含第三个):345
print(str[5:]) #从第六个字符开始输出(包含第六个):6789
print(str[1:7:2]) #从第二个字符开始输出到第八个字符,步长为2:246
prtin(str * 2) #输出两次:123456789123456789
print(str + 'test') #+字符串拼接:123456789test
print('test \n test') #转义字符\n换行:test(换行后输出)test
print(r'test \n test') #转义字符无效原样输出:test \n test
标准数据类型
- 可变:List、Set、Dictionary
- 不可变:Number、String、Tuple
Tuple
- Tuple中的元素不可修改,但是可以包含可变对象,如list
- 空元组:tup = ()
- 只有一个元素的元组,需要在元素后面加逗号:tup = (1,)
Dictionary
Dictionary字典:键值对集合
isinstance()和type()的区别
isinstance()不区分有继承关系的类,如:B继承于A,isinstance(B(),A)返回True。type()则区有继承关系的类,如:type(B())==A,返回False。
运算符
注意python中没有自增(++)自检(–)运算符
算数运算符
- 加法:+
- 减法:-
- 乘法:*
- 除法:/(返回浮点数),//(返回整数,向下取整)
- 取余:%(浮点数也可以取余)
- 乘方:**
- 整数与浮点数进行运算时,结果是浮点数。
逻辑运算符
假设变量a=False,b=True
逻辑运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | x and y | 与 |
or | x or y | 或 |
not | not x | 非 |
成员运算符
成员运算符 | 描述 | 实例 |
---|---|---|
in | 在指定的序列中找到指定的值返回True,否则返回False | if (a in list) |
not in | 在指定的序列中没有找到指定的值返回True,否则返回False | if(a not in list) |
身份运算符
用于比较两个对象的存储单元
身份运算符 | 描述 | 实例 |
---|---|---|
is | 判断两个标识符是不是引用自同一个对象 | x is y 如果是引用的同一个对象返回True,否则返回False,类似于id(x)==id(y) id(),用于获取对象的内存地址 is和==的区别:is是判断两个对象是否是同一个对象,==是比较两个对象的值是否相等 |
is not | 判断两个标识符是不是引自不同对象 | x is not y 如果x和y引用的不是同一个对象返回True,否则返回False |
数据类型转换
数据类型转换时,将数据类型作为函数即可。
函数 | 描述 |
---|---|
int(x,[,base]) | 将x转换成一个整数,默认语法:class int(x,base=10) 参数base为进制数,默认为十进制 |
float(x) | 将x转换成一个浮点数 |
str(x) | 将x转换成字符串 |
repr(object) | 将object转换成供解释器读取的形式,例如打印List,Set |
转移字符
转义字符 | 描述 |
---|---|
\ | 续航符 |
\\ | 反斜杠 |
\a | 响铃,输出后电脑会响铃 |
\b | 空格 |
\000 | 空 |
字符串格式化
print('我叫%s今年%d'岁 % ('小猪佩奇',1))
输出:我叫小猪佩奇今年1岁
条件控制
Python中使用elif替代了else if。
每个条件后面使用冒号“:”。
Python中没有switch-case语句。
while循环使用else
实例:
count = -2
while count > 0 :
print(count , " 大于0 ")
count += 1
else :
print(count , "小于0")
for循环同理。
循环语句中使用else语句,在穷尽列表(for循环)或条件变为false(while循环)导致循环终止时执行,但是循环被break时不执行。
迭代器
迭代是访问元素结合的一种方式。
迭代器是可以记住遍历位置的对象。
迭代器从被遍历对象的第一个元素开始访问,直到所有元素被访问完,迭代器只往前不会后退。
迭代器有两个基本方法iter()和next().
实例:
list = [1,2,3,4]
it = iter(list) //创建迭代器it
print(next(it)) //输出迭代器的下一个元素1
迭代器可以使用for循环进行遍历
list = [1,2,3,4]
it = iter(list)
for x in it:
print(x, end = " ")
自定义迭代器
自定义迭代器需要实现两个方法:__iter__(),__next_()
__iter_()返回一个特殊的迭代器(自定义内容),这个迭代器对象实现__next__()方法并通过StopIteration异常标识迭代的完成
创建一个返回数字的迭代器,初始值为1,每步递增1
Class TestNumber:
def __iter__(self):
self.a = 1
return self
def __next__(self):
x = self.a
self.a += 1
return x
testNumber = TestNumber()
it = iter(testNumber)
count = 5
while count > 5:
print(next(it))
count += 1
生成器
使用了yield的函数被称为生成器(generator),和普通函数的不同是,生成器是返回迭代器的一个函数,只能用于迭代操作,简单理解生成器就是一个迭代器。
在调用生成器运行的过程中,每次遇到yield时,函数会暂停并保存当前运行的所有信息,返回yield的值,并在下一次执行next()方法时从当前位置继续执行。
总结:调用含有yield的函数返回一个迭代器,生成器理解为生成一个迭代器。
使用yield实现斐波那契数列:
import sys
def fibonacci(n):
a,b,count = 0,1,0
while True:
if count > n : //大于循环次数后退出
return
yield a //记录并返回当前a的值 0,1,1,2,3,5,8,13,21,34,55
a,b = b, a+b
count += 1
f = fibonacci(10) //相当于f = [0,1,1,2,3,5,8,13,21,34,55]
while True:
try:
print(next(f), end=" ")
except StopIteration:
sys.exit()
//输出结果:0 1 1 2 3 5 8 13 21 34 55
有问题欢迎私聊或者发送邮箱(964427082@qq.com)一起讨论