sys.argv保存参数,第一个参数为该模块文件的相对路径,后面的参数加在一起形成一个列表。
- import sys
- print(sys.argv)
os.system()执行一条系统命令。直接输出到屏幕,不能存到变量里,该方法返回状态码(0为成功)。
- import os
- os.system("dir") #只执行命令,不保存结果
- import os
- cmd_res = os.popen("dir").read()
- print(cmd_res)
os.mkdir("new_dir"),在当前路径创建一个新目录。当目录已经存在时,会抛出异常。
- import os
- os.mkdir("new_dir")
六、bytes和str
- a,b,c = 1,3,5
- result = a if a>b else c
- print(result)
- msg = "我爱北京天安门".encode("utf-8")
- print(msg)
- msg = msg.decode("utf-8")
- print(msg)
第一层的数据完全copy。第二层的数据未copy,copy的是内存地址。共同指向同一块内存区域。
- names = [1,2,3,[‘a‘,‘b‘],4,5]
- names2 = names.copy()
- names2[2] = 10
- names2[3][1] = ‘c‘
- print(names)
- print(names2)
- import copy
- names = [1,2,3,[‘a‘,‘b‘],4,5]
- names2 = copy.copy(names) #和list中的copy是一摸一样的
- names3 = copy.deepcopy(names) #深度copy,真正意义上的copy。但用得少,占两份完整的内存空间。
- num = [0,1,2,3,4,5,6,7,8,9,10]
- for i in num[0:-1:2]:
- print(i)
- num = input("please input a num")
- if num.isdigit():
- num = int(num)
- name = "my name is {name},I am {year} years old."
- print(name.format(name = "Leokale",year = 32))
判断是否是阿拉伯数字和字符(isalnum):
- name = "my name is {name},I am {year} years old."
- print(name.format_map({"name":"leokale","year":32}))
- print("123".isalnum())#输出True
- print("123abc".isalnum())#输出True
判断是否为纯英文字符(isalpha):包含大小写
- print("123abc*".isalnum())#输出False
- print("abcABC".isalpha())#返回True
判断是否为十进制(isdecimal)
- print("abcABC123".isalpha())#返回False
- print("my_name".isidentifier())#输出True
判断是否全为小写(islower)
- print("--my_name".isidentifier())#输出false
- print("+".join(["my", "name", ‘is‘, ‘leokale‘]))#输出my + name + is + leokale
在前面使用字符填充(rjust):
- print("name".ljust(20, ‘ * ‘))#输出name * ***************
全部转换为小写(lower)
- print("name".rjust(20, ‘ * ‘))
- name = " name \n"
- print(name.strip())
替换(replace):
- name = "leokale good day is today"
- ppp = str.maketrans("leokalgdys","123456789*") #数量要对应
- print(name.translate(ppp))
从右边开始查找返回索引(rfind):
- print("namea".replace("a", "*", 2))#输出n * me *
按某个字符分割(split):
- print("leokale".rfind(‘l‘))#输出5
- print("my name is leo".split()) #输出[‘my‘, ‘name‘, ‘is‘, ‘leo‘]
- print("my+name+is+leo".split(‘+‘))
转换为Title(title):
- print("Name".swapcase())#输出nAME
用0在前面补位(zfill):主要用于16进制前面使用0补位。
- print("good thing".title())#输出Good Thing
- info = {
- ‘id1‘:‘Leo‘,
- ‘id2‘:‘Jack‘,
- ‘id3‘:‘Alex‘,
- ‘id4‘:‘Song‘
- }
- print(info[‘id1‘])#输出leo
添加一条:id5不存在时,则为添加。
- info[‘id1‘] = ‘Kale‘
- print(info[‘id1‘]) #输出 Kale
删除:
- info[‘id5‘] = ‘Lily‘
- del info[‘id2‘]
- print(info)
- info.pop(‘id2‘)
- print(info)
查找:
- info.popitem() #随机删除一个
- print(info)
- if ‘id1‘ in info: #‘id1‘ in info,若存在返回True,不存在返回False。列表和元组也可以这样判断。
- print("id1存在")
修改id2中的年龄:
- info = {
- ‘id1‘:{
- ‘name‘:‘Leo‘,
- ‘age‘:32
- },
- ‘id2‘:{
- ‘name‘:‘Boob‘,
- ‘age‘:12
- },
- ‘id3‘:{
- ‘name‘:‘Alex‘,
- ‘age‘:22
- },
- ‘id4‘:{
- ‘name‘:‘Jack‘,
- ‘age‘:56
- }
- }
- info[‘id2‘][‘age‘] = 44
- print(info)
更新(update):若info与info2之间的key有交叉,则使用info2中的内容替代。没交叉的部分,在info里创建。
- info.setdefault(‘id5‘, {‘name‘: "武藤兰"
- }) print(info)#添加了id5,name为武藤兰info.setdefault(‘id5‘, {‘name‘: "藤原爱"
- }) print(info)#已经存在id5,则返回 {‘name‘: ‘武藤兰‘
- }
把字典转换为列表,每一个key-value转换为元组:
- info2 = {
- ‘id1‘:{
- 1:2,
- 2:3
- }
- }
- info.update(info2)
- print(info.items()) #输出dict_items([(‘id1‘, {1: 2, 2: 3}), (‘id2‘, {‘name‘: ‘Boob‘, ‘age‘: 12}), (‘id3‘, {‘name‘: ‘Alex‘, ‘age‘: 22}), (‘id4‘, {‘name‘: ‘Jack‘, ‘age‘: 56})])
初始化一个字典(fromkeys):
- info_list = list(info.items())
在这里,若fromkeys的第二个参数为二层以上结构。则dict1每个key对应的value为一个引用。修改其中一个,全部都会变化。
- dict1 = dict.fromkeys([1,2,3,4],"test")
- print(dict1)
- dict1 = dict.fromkeys([1,2,3,4],{‘name‘:‘leo‘})
- dict1[1][‘name‘] = "Jack"
- print(dict1) #输出 {1: {‘name‘: ‘Jack‘}, 2: {‘name‘: ‘Jack‘}, 3: {‘name‘: ‘Jack‘}, 4: {‘name‘: ‘Jack‘}}
- for key in info: #建议使用这种,高效。
- print(key,info[key])
- for k,
- v in info.items() : #有一个把字典转换为列表的过程,效率比较低,数据量大的时候体现明显。print(k, v)
来源: http://www.bubuko.com/infodetail-2319827.html