Python学习之路

Python特点

Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

  1. Python是一种解释型语言:开发过程中没有了编译这个过程。
  2. Python是交互式语言:可以在一个Python提示符“>>>”后直接执行代码。
  3. 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将输出结果输出在同一行,或者在输出末尾添加不同字符
passpass时空语句,为了保持程序结构的完整性,pass不做任何事情,一般用作占位语句

注释

  1. 单行注释:以“#”开头
#单行注释
  1. 多行注释:单引号或者双引号
'''
单引号多行注释
'''
"""
双引号多行注释
"""

数据类型

数据类型例子
整数 int-100
浮点数 float3.14
字符串‘hello’
列表[-100, 3.14, ‘hello’]
字典{‘cat’ : 1, ‘dog’: 2}
长整型1000000000000L
布尔型 bool (bool是int的子类)True,False
元组(‘python’, 1)
集合{1, 2, 3}
相关函数:
  • type():查看数据类型

字符串(String)

  1. 使用单引号和双引号的字符串完全相同
  2. 使用三引号’''或者"""可以指定一个多行字符串,多行注释
  3. 转义符:\
  4. 反斜杠可以转义,使用r可以使转义不生效,如:r’‘this is a line with \n’这里的\n会直接输出,这里的r指的是row,即row string,意思为输出字符串为一行
  5. 按字面意义级联字符串,如"this" “is” “string"会自动转换成"this is string”
  6. 可以用+运算符连接字符串,使用*运算符重复输出
  7. 字符串有两种索引方式,从左往右以0,1,2…开始,从右往左以-1,-2,-3…开始
  8. python中的字符串不能改变(Number用于存储数值,也是不允许改变
  9. python中没有单独的字符类型,一个字符就是一个长度为1的字符创
  10. 字符串的截取语法格式:变量[头下标:尾下标:步长
  11. 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

标准数据类型

  1. 可变:List、Set、Dictionary
  2. 不可变:Number、String、Tuple

Tuple

  1. Tuple中的元素不可修改,但是可以包含可变对象,如list
  2. 空元组:tup = ()
  3. 只有一个元素的元组,需要在元素后面加逗号:tup = (1,)

Dictionary

Dictionary字典:键值对集合

isinstance()和type()的区别

isinstance()不区分有继承关系的类,如:B继承于A,isinstance(B(),A)返回True。type()则区有继承关系的类,如:type(B())==A,返回False。

运算符

注意python中没有自增(++)自检(–)运算符

算数运算符

  1. 加法:+
  2. 减法:-
  3. 乘法:*
  4. 除法:/(返回浮点数),//(返回整数,向下取整)
  5. 取余:%(浮点数也可以取余)
  6. 乘方:**
  • 整数与浮点数进行运算时,结果是浮点数。

逻辑运算符

假设变量a=False,b=True

逻辑运算符逻辑表达式描述
andx and y
orx or y
notnot x

成员运算符

成员运算符描述实例
in在指定的序列中找到指定的值返回True,否则返回Falseif (a in list)
not in在指定的序列中没有找到指定的值返回True,否则返回Falseif(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)一起讨论

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值