IDE:集成开发环境
enumerate的使用:
例如:已知lst = [1,2,3,4,5,6],要求输出:
0,1
1,2
2,3
3,4
4,5
5,6
a = [1,2,3,4,5]
for index,value in enumerate(a):
print('%s,%s'%(index,value))
输出如下:
0,1
1,2
2,3
3,4
4,5
#指定索引从1开始
>>> lst = [1,2,3,4,5,6]
>>> for index,value in enumerate(lst,1):
print ('%s,%s' % (index,value))
1,1
2,2
3,3
4,4
5,5
6,6
#指定索引从3开始
>>> for index,value in enumerate(lst,3):
print ('%s,%s' % (index,value))
3,1
4,2
5,3
6,4
7,5
8,6
1.str = r'C:\Program Files\FishC\Good''\\'
(结尾加反斜杠,用转义字符,r就是直接把\作为输入而不是转义)
file1 = open(r'C:\windows\temp\readme.txt', 'r') 表示以只读方式打开
2.跨行:(1) (2) (3)
str = """ str = ' asdasasd\ str = ('asdasd'
sadasdas\ 'asdasd'
""" asdasds' ' sadas')
(单、双引号都可以,可以做多行注释)
3.input 输入的是字符串类型 , int是向下取整
prompt = ('请输入用户名:')
name = input(prompt)
4. s为字符串
s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。
s.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False。
s.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。
s.islower() 所有字符都是小写,为真返回 Ture,否则返回 False。
s.isupper() 所有字符都是大写,为真返回 Ture,否则返回 False。
s.istitle() 所有单词都是首字母大写,为真返回 Ture,否则返回 False。
s.isspace() 所有字符都是空白字符,为真返回 Ture,否则返回 False
5.(1)type() 和 isinstance() e.g.type(1) ; isinstance(1,int)
(2)索引函数index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始)
和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,
只不过如果str不在 string中会报一个异常。
index()方法语法:
str.index(str, beg=0, end=len(string))
参数:
str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
(3)find:str.find(str, beg=0, end=len(string)) 有返回开始的索引值,否则返回-1
(4)split(分割:): data = '1000,小甲鱼,男'
(mydict['id'], mydict['name'], mydict['sex'] = data.split(','))
6.temp.isdigit() : 判断temp是否是数字,是则true
7.一个语句分多行输入
反斜杠:3 > 4 and \
1 < 2
括号: ( 3 > 4 and
1 < 2 )
8. print('*', end=' ') # 打印的结尾为空白
9. // :整数除法 3//2 = 1 , 3.0//2.0 = 1.0
not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9 = 4(not > and > or)
10. assert 0:assert后面条件为假的话就报错AssertionError
直接交换:x, y, z = z, y, x
11. 三元操作符:
(x < y and [x] or [y])[0] = 2 (x=2, y=3, z=4)
small = x if (x < y and x < z) else (y if y < z else z) = 2
12. 列表(随时可以添加和删除), 元组(封闭的列表,不可改变):
列表:[];元组:();字典:{} 。 (字典要有映射关系,不能只大括号,不然是set类型)
dict((())) set([]) or set{}
mix = [1, ‘小甲鱼’, 3.14, [1, 2, 3]]
添加元素:append()、extend() 和 insert()
mix.append(['o', 'm'])
mix.extend(['o', 'm'])
mix = [1, '小甲鱼', 3.14, [1, 2, 3], ['o', 'm'], 'o', 'm']
name.insert(2, 's') # 在第2,3个元素之间插入s
temp=mix.pop(): 把mix列表的最后一个元素拿出来赋给temp
13. list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
list1[1][2][0] = '小鱿鱼' # 修改小甲鱼为小鱿鱼
14. 顺序、逆序排序: 列表名.sort()
列表名.reverse()
or列表名.sort(reverse=True)
拷贝、清空: list2 = list1.copy() 、 list2.clear()
15. (1) temp = (‘小甲鱼’, ‘黑夜’, ‘迷途’, ‘小布丁’)
# 如果我想在“黑夜”和“迷途”之间插入“怡静”,我们应该:
temp = temp[:2] + (‘怡静’,) + temp[2:]
(2) x, y, z = 1, 2, 3
(所有的多对象的、逗号分隔的、没有明确用符号定义的这些集合默认的类型都是元组)
type(x)
h = x, y, z
type(h) # <class 'tuple'>
16. 没有类似列表推导式的元组推导式,而是生成器
tuple1 = (x**2 for x in range(10))
type(tuple1)
<class 'generator'>
tuple1.__next__() # 生成下一个:即0,1,4,9,16……81
17. str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>'
提取出子字符串:'www.fishc.com':str1[16:29] or str1[-45:-32]
提取出:'fishc':str1[20:-36]
18. 符 号 说 明
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化定点数,可指定小数点后的精度
%e 用科学计数法格式化定点数
%g 根据值的大小决定使用%f或者%e
%G 根据值的大小决定使用%F或者%E
19. (1)"{{1}}".format("不打印","打印")
{1}是占位符,表示打印打印第二个
(2)"{a} love {b}.{c}".format(a="I", b="FishC", c="com") # 关键字参数
'I love FishC.com'
(3)"{0} love {1}.{2}".format("I", "FishC", "com") # 位置参数
'I love FishC.com'
(4)'{0}{1:.2f}'.format('Pi = ', 3.1415)
'Pi = 3.14'
20. 进制转换:print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
print('十进制 -> 二进制 : %d -> ' % num, bin(num))
print('子字符串在目标字符串中共出现%d次' % count)
21.转换: temp = 'I love FishC.com!'
list(temp)
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'F', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm', '!']
str(temp)
'I love FishC.com!'
list([temp])
['I love FishC.com!']
tuple([temp])
('I love FishC.com!',)
22. def MyFun(x, y):
return x[0] * x[1] - y[0] * y[1]
23. 函数文档(为了让别人理解你的函数):
def Dec2Bin(dec):
'函数文档'
访问函数文档: Dec2Bin.__doc__
'函数文档'
help(Dec2Bin):查看函数的默认参数和函数文档
24. (1)全局变量:global
(2)在内部函数修改外部函数的局部变量:nonlocal
25. 闭包(可用于游戏的角色移动):
def funX(): 可得6 7 8
x = 5
def funY():
nonlocal x
x += 1
return x
return funY
a = funX()
print(a()) print(a()) print(a()) (只要a没被重新赋值funX()就没有被释放)
26.(1) 匿名函数:lambda x, y = : x * y
(2)filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,
可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传
递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
e.g. list(filter(lambda n : not (n % 3), range(1, 100)) # 计算100以内的3的倍数)
=[ i for i in range(1, 100) if not (i % 3)] # filter(function, iterable)
27. (1)zip:将两式以元组形式绑定在一起:list(zip([1,3,5,7,9], [2,4,6,8,10]))
[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
(2)map() 函数语法:map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数
序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表.
map(function, iterable, ...)
e.g. list(map(lambda x, y : [x, y], [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
28. 字典: mydict = dict((('F', 70), ('i', 105))) or dict()
{'F': 70, 'i': 105}
mydict['F'] -> 70
直接mydict['G'] = 123就可添加字典元素
29. 集合:集合是无序的(num_set[0]会报错) set1 = {1, 1.0} -> set1 = 1
(1)集合:num_set = set([1, 2, 3, 4])
num_set -> {1, 2, 3, 4}
(2)不变的集合:num_set = frozenset([1, 2, 3, 4])
num_set -> frozenset({1, 2, 3, 4})
(3)添加和删除元素:num1.add(6) :添加6
num1.remove(6) :去除6
30. 打开文件:f = open('E:/test.txt', 'w') # A √
f = open('E:\test.txt', 'w') # B ×(用反斜杠需要用双反斜杠进行转义)
f = open('E://test.txt', 'w') # C √
f = open('E:\\test.txt', 'w') # D √
(默认打开模式为:rt,即可读、文本模式)
‘xb’:可写入及二进制模式
‘w’ :可写入模式打开,若存在文件名相同的文件会覆盖
‘x’ :可写入模式打开,若存在文件名相同的文件会抛出异常