python学习笔记1-9[官方文档]

Python 解释器 UTF-8
在交互模式下,…是次要提示符, >>>主要提示符

  • / 除法运算
  • //整除运算
  • %求余数
  • ** 乘方
  • 复数 : 3+5 j (用J即可,大小写均可)
    如果是多种混合运算(包含浮点数的情况下)最后都会成为浮点数
    python 包括int float decimal fraction

3.1.2字符串

单引号和双引号在python意义一样
反斜杠\用于转义,有时候如果想要取消转义效果,要在一整个字符串的前面加一个r
也就是print(r"C:\some\name") 如果没有前置r,那么就会被理解为\n 这是换行符号

字符串跨行输入可以是

pring("""
 hello world 
 你好
""")
输出

hello world
你好

------------------------------------------
pring("""\
 hello world 
 你好
"""
输出(关键是那一个空行)
hello world
你好

字符串可以用+拼接,也可以用*重复 两个相邻的字符串会自动拼接如: “123””456“ =》“123456”
这点尤其是把很长的字符串拆开分别输入的时候尤其有用

text = ("hello"
"world" )
print(text)
hello world

但是这样的操作只能对字面量操作,如果是表达式或者变量就不可以了。只能用+号了


字符串是可以被索引访问的,第一个是0
word=“python”
word[0]=p
也可以用负数访问
word[-1]=n


切片 左边包括右边不包括 同时 [1:]表示从第二个字符到结尾
如果使用了过大的索引,会报错
但是如果只是使用了过大的切片,会被自动处理


python中的字符串是不可被修改的
内置的len()函数返回一个字符串的长度

列表

列表同样支持拼接,也支持 切片(每次切片返回一个新的列表) 而且内容可变
用append尾部增加
内置函数len也可以用上

3.2 走向编程的第一步

第一: python可以多重赋值
第二:缩进
第三:print()
\会转义->\

4.1 if

if 语句不要写括号,其他差不多

4.2 for

for i in range(1,5,2) 步长是2 从1开始,不包括5

4.3 range

4.4break continue else

4.5 pass

4.6 定义函数

4.7函数的定义形式

4.7.1参数默认值

def ask_ok(prompt,retries=4,reminder = ‘please try anain’)
几种填写参数的方式
ask_ok (4)
ask_ok(4,reminder=“2”)
ask_ok(4,5,“123”)

4.7.2 可变参数与keyword参数

def method(kind,*arguments,**keywords):
	print("--Do you have any",kind,,"?")
	print("-- I'm sorry we're all out of " kind)
	for arg in arguments:
		print(arg)
	print("-"*40)
	for kw in keywords:
		print(kw,":",keywords[kw])

后续可以这样调用

cheeseshop("Limburger",
"It's very runny,sir",
"It's really very Very runny,sir",sh
opkeeper="Michael Palin",
client="John Cleese",
sketch="Cheese Shop Sketch")

4.7.3 可变参数后接参数

def method(*args, test)
methos (asd,asd,test=123)

4.7.4 解包参数列表

list(range(3,6))
args=[3,6]
list(rage(*args))
[3,4,5]

4.7.5 lambda 表达式

def make_increamentor(n):
return lambda x:x+n

5.1列表的更多特性

append
extend(一个iter) 用于拓展列表
insert(i,x)
remove(x)
删除第一个出现的,如果没有就报错
pop(i) 如果没有指定位置就删除最后一个
clear
index(x[,start[,end]])
搜索

count(x)计数

sort 参数可以用于自定义排序

reverse

copy

5.1.1列表作为一个栈使用

append()
pop()

5.1.2列表做队列使用

用collections.deque比较好

5.1.3 列表推导式

squares = [x**2 for x in range(10)]

反正看这种就是,x in range(10) 然后 对每一个x 进行x**2 然后装进列表

同时提到了一个zip函数, list(zip(*matrix))
[(1,5,9),(2,6,10),(3,7,11),(4,8,12)]

5.2del

a[1,2,3]
del a[0]
[2,3]
del a(就像是从内存上就释放了这玩意,再引用会报错)

5.3 元组和序列

元组的创建直接用()
元组是不可变更的
也可以

t=12345,554321,‘hello’

5.4集合

重复无序的一个,只能用set()创建,因为{}会创建一个字典

5.5 字典

也就是map

5.6 循环的技巧

在字典中 用item()便利字典

for k,v in knights.items():

在序列中循环时:用enumerate()函数可以将索引位置和其对应的值同时取出。

for i,v in enumerate(['tic','tac','toe'])
	print(i,v)
# anthor way
for i in range(0,len(list))

当两个或者更多序列循环时,可以用zip()函数将其内元素一一匹配

questions=['name','quest']
answers=['lancelot','the holy grail']
for q,a in zip(questions,answers):
	print("what is your {0}? It is {1}.".format(q,a))

what is your name? It is lancelot.
whar is your quest? It is the holy grail.

如果要逆向一个序列可以:

for i in reverse(range(1,10))
	print(i)

想按照指定顺序可以使用sort函数
如果想循环时修改列表内容, 一般来说创建一个新列表比较好

6.1.1

from fibo import fib as fibonacci

7.1

输入输出 print input

7.2读写文件

f = open(“workfile”,‘w’)
r 是只能读取 w是只能写入 a 是追加 r+是读写 默认为r
如果是b 那就是binary mode
再用完之后要 file.close()

7.2.1 文件对象的方法

f.read()
f.readline()
f.write()
f.tell() 返回一个证书,给出文件对象在文件中的当前位置,表示二进制下从文件开始的字节数,以及文本模式下意义不明的数字

8 错误和异常

8.1 语法错误

在写代码过程中写错了代码

8.2 异常

例如ZeroDivisionError,NameError ,TypeError
在处理错误时,一般会用
try
except
else
finally这四个语句:

for i in (1,0):
	try:
		5/i
	except ZeroDivisionError:
		print("zeroDivisionError")
	except TypeError:
		print("typeError")
	else:
		print("other errro")
	finally:
		print("bye bye")

以上语句就会输出

you are right
bye bye
you are error 
bye bye
class B(Exception):
	pass
class C(B):
	pass
class D(C):
	pass
for cls in [B,C,D]:
	try:
		raise cls()
	except D:
		print("D")
	except C:
		print(“C”)
	except B:
		print("B")

B C D
理由是多态,B是父类,父类不能被赋值给子类

如果把except语句颠倒,就会输出BBB 
理由是多态,B是父类,子类可以赋值给父类
BTW,在学习的过程中发现python允许多继承,
class A():
	def method(self):
		print("Method in class A")
class B():
	#类似于静态变量
	a=1
	def method(self):
		print("Method in class B")
	@staticmethod
	def static():
		B.a+=1
		print("a=",a)
class SuperClass(A,B):
	pass
sc = SuperClass()
#这样子只有class A中的method,B的method没找到
sp.method()
sp.static()
B.static()
---
Method in class A
a=2
a=3

8.4抛出异常

raise(就类似于java中的throw)

8.5用户自定义异常

继承一下就好。。。。。。

8.6 finally语句

8.7 预定义的清理操作

with open ("myfile.txt") as f:
	for line in f :
		print(line,end = " ")

这个保证会关闭文件,用with语句的话

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值