
Python笔记一
输入:
a = input('please input a value:')
## 默认得到的是字符串
## 可以用int()转换成int</code></pre>
输出:
print ()
print ("a=%d", %a)
列表:
a = ['kishere', 'god', 1]
## 可以放字符串, 整数, 甚至可以混合
a.append('炸鸡')
## 尾插
a.extend(['zhaji',2])
## 合并
a.insert(0,'lulu')
## 插入
a.remove('god')
## 删除god
del a[1]
del a
## 删除a[1], 删除a
a[1:3]
## 分片 输出下表为1和2的成员
## 前后索引值可以省略(前面的缺省值为0 后面的缺省值为len(a))
a + b
##连接两个列表
a * 2
## 将列表重复两份 首尾相连
a.sort(func,key,reverse=false)
# 排序(func默认归并排序,key关键字(算法配套的关键字),reverse=false默认从小到大,true从大到小)
a.reverse()
# 逆序
a = b[:]
a = c
#第一种是拷贝一份
#第二种是把c也指向a所指的列表(这里改变a时也会改变c)
god in a
#返回true或false 成员操作符,判断god是否在a中
元组:
元组不能被修改, 不能增加
‘,’是元组的标志
b = (1,2,3,4,5)
c = (1,)
字符串操作:
str = "kishere"
str.capitalize()
# 返回一个字符串,将源字符串第一个字母变成大写
str.casefold()
# 返回一个字符串,将源字符串都变成小写
str.count(sub[,start[,end]])
# 返回sub在字符串中出现的次数
str.find(sub[,start[,end]])
# 检测sub是否在字符串中, 有就返回-1,否则返回索引值
格式化:
#位置参数:
"{1} {2} {3}".format("kishere","is","god")
# 输出 kishere is god
关键字参数:
"{a} {b} {c}".format(a="kishere",b="is",c="god")
浮点数:
"{0:.1f}{1}".format(23.333,"GB")
# " : "表示格式化符号的开始, f表示定点数(约等于浮点数)
"%c" % 97
# 输出a
"%f" % 23.3
#输出23.300000 默认保留六位
%o : 八进制
%x : 十六进制
%d : 十进制
在%和字符中间插入一个/# 可以在十六进制和八进制前打印一个0x 或者0o
序列 :
a = list()#创建一个空列表
b = "kishere is god"
b = list(b)#把一个可迭代对象转换为列表
b = tuple(b)#把一个可迭代对象转换为元组
len(a)#返回序列长度
max(a)#返回序列中最大的值
min(a)#返回序列中最小的值
# 使用max和min时需要保证所有元素的数据类型相同
number = (1,2,3)
sum(number[,num])
#number成员需要是数值类型, [num]为可选参数, 填了会加上num
sorted(number)#从小到大排序
reversed(number)#返回逆序后的迭代器对象
list(reversed(number))#返回一个列表
enumerate(number)#返回每个元素的索引值和元素的值组成的元组的迭代器对象
list(enumerate(number))#返回每个元素的索引值和元素的值组成的元组
#结果: [(0,1),(1,2),(2,3)]
index = (2,3,4,5)
zip(index,number)#返回由各个序列相同索引值的值组成列表
#结果 : [(2,1),(3,2),(4,3)] 新列表的长度取决于参数中最短的列表
函数 :
def func():
'this is a func which can print a hello world'
print('hello world')
# 在函数开头可以写上函数文档
func.__doc__
help(func)
#会打印出函数文档
def func(name, word):
print(name + " say: " + word)
func(word="I'm god", name="kishere")
#可以用关键字参数而不考虑参数顺序
def test(*params):
print("参数的长度是: ", len(params))
print("第一个参数是: ",params[1])
test(1, "kishere",3.14 , 2, 4, 5)
#使用 ' * '可以使函数收集参数, 此时可以传无限多个参数, 把参数用元组打包起来
#print就有收集参数 所以可以传递多个参数, print会把他们自动放在一起
#python的函数会默认返回None对象
#如果return多个值 如 return 1,2,3 会默认使用元组返回
#如果在函数中试图修改全局变量, python会使用屏蔽机制, 自动生成一个名字相同的局部变量, 防止全局变量被修改
#使用global 关键字在函数中修饰全局变量名, 可以修改全局变量
内嵌函数:
def func1():
def func2():
#do something
func2()
#func2就是内嵌函数, func2只能在func1中进行调用
闭包:
def funX(x):
def funY(y):
return x * y
return funcY
i = funcX(5)
i(8)
#结果 : 40
funcX(8)(5)
#字啊一个内部函数里, 对它的外部作用域的变量(不包括全局变量)进行了引用, 那么这段代码就形成了闭包 :
#返回一个函数funcY对象, 注意不能直接返回funcY()否则会报错
#如果一定要返回funcY(), 可以使用nonlocal关键字修饰一下x
