码迷,mamicode.com
首页 > 其他好文 > 详细

study_notes(2)

时间:2018-02-28 19:45:28      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:判断字符串   translate   dig   and   pycha   api   更新   ted   microsoft   

一. 杂谈

1.Python没有长整型,只有整型;

2.sys模块(用C写成)

 sys.path  搜索模块的路径集合

 sys.argv  打印相对路径,但在pycharm中存储的是绝对路径

3.os模块

 os.system("dir")    直接输出的屏幕,不会进行传值

 os.popen("dir").read()    popen()将内容存储到内存的某地方,读出后便可以打印

 os.mkdir("new_dir")    创建目录(熟悉linux的都懂) 

4.一般标准库放在lib下,第三方库安装在site_packages中,当前目录中找不到模块,便会去site_packages中查找。

5.三元运算

 result = value1 if conditions else value2

  if conditions==True: result=value1

  else conditions==False: result=value2

6.bytes

在python3.x中,文本总是unicode(str类型),而二进制数据则是bytes类型。并且,所有数据的传输皆为二进制,无论字符串还是视频。

问题来了:string和bytes怎么互相转化?

          >>>(decode)>>>

string                                      bytes

           <<<(encode)<<<

>>> ?o?.encode(utf-8)
b\xe2\x9d\xa4o\xe2\x9d\xa4
>>> b\xe2\x9d\xa4o\xe2\x9d\xa4.decode(utf-8)
?o?

(只是针对特殊字符哦?!)

二. 列表

1.关于切片,一定是 name[-3:-1] 而不是 name[-1:-3](从左向右数);

2.有关列表的一些方法:

names.insert(1, ‘S‘) 将S插入到任意位置  
names.remove(‘S‘)    
del names[1]   python内置方法,可删除任意元素
names.pop() 输入索引,想删哪里删哪里  
names.index(‘S‘) 查找元素的位置 典型用法——name.[name.index(‘S‘)] 
names.count(‘S‘) 统计S的数量  
names.clear() 清空列表  
names.reserve() 永久性的修改列表的排列顺序  
names.sort() 永久性的改变列表的排列顺序

按ACSII顺序排列(特殊字符>数字>大写>小写)

使用reserve=True便按照相反的顺序排列

names.sorted() 暂时性的改变列表的排列顺序
names.extend(names2) 合并列表,并且names2依然存在  
names2=names.copy()

浅copy(只copy了第一层,在嵌套第二层只相当于copy了内存地址)

改变names,names2不会发生改变

可用于创建联合账户等

 
names2=name[:]  
names2=copy.copy(names) import copy
names2=list(names)  
names2=copy.deepcopy(names) 深copy import copy
names2=names  指向同一处内存  

 

3.跳位读取names[0:-1:2] >>names[::]

4.元组,一旦创建就不能修改,只存在两个方法  count  &  index  。

三.字符串方法汇总

‘S‘.capitalize() 首字母大写  
‘S‘.count(‘s‘) S中的s的数量  
‘S‘.center(100,‘#‘) 100个字符,将S居中,其余中#填充  
‘S‘.encode() 字符串转为二进制  
‘S‘.endswith(‘s’) 判断字符串S是否以s结尾  
‘S‘.expandtabs(tabsize=10) 将tab键转换为多少tabsize的空格  
‘S‘.isalnum() 检测是不是只包含阿拉伯数字以及英文  
‘S‘.isalpha() 检测是不是只包含英文(大小写均可)  
‘S‘.isdecimal() 检测是否是十进制  
‘S‘.isdigit() 判断是否是整数  
‘S‘.isidentifier() 判断是否是一个合法的标识符  
‘S‘.islower() 判断是否是小写  
‘S‘.isnumeric() 判断是否只包括数字  
‘S‘.isspace() 判断是否是空格  
‘S’.istitle() 判断是否是标题格式  
‘S‘.isprintable() 判断是否可打印(tty file,drive file文件不能被打印)  
‘S‘.isupper() 判断是否是大写  
‘S‘.join() 合并列表为字符串 print(‘‘.join([‘he‘,‘l‘,‘lo‘]))  输出:hello
‘S‘.ljust(50, ‘@‘) 字符串总长50,剩余的由@补充,从左边开始  
‘S‘.rjust(50,‘@‘) 字符串总长50,剩余的由@补充,从右边开始  
‘S‘.lower() 大写转换为小写  
‘S‘.lstrip() 去掉左边的空格和回车  
‘S‘.rstrip() 去掉右边的空格和回车  
‘S‘.strip() 去掉两端的空格和回车  

str.maketrans()

‘S‘.translate()

替换字符
vin = str.maketrans(‘abcdef‘, ‘123456‘) 
print(‘abcdgef‘.translate(vin))
输出:1234g56
‘S‘.replace(old, new, count) 用新字符去替换旧字符,count决定替换的数量  
‘S‘.rfind(‘s’) 返回s最右字符的下标  
‘S‘.find(‘s’) 返回s最左字符的索引 S.[S.find(s):] 切片
‘S‘.format() 填充  
‘S‘.format_map() 以字典的形式填充
print("{year}-{month}".format_map({‘year‘: 2018, ‘month‘: 2}))
‘S‘.split(‘s‘) 以任何s字符为分隔符  
‘S‘.splitlines() 以\n为分隔符  
‘S‘.startends(s) 判断是否是以s开头  
‘S‘.swapcase() 小写换大写,大写换小写  
‘S‘.title() 转换为title格式  
‘S‘.zfill() 补位  

 四.字典

假设有一个字典为info{key1:value1, key2:value2,....... }:

del info[key]  
info.pop(key)  
info.popitem 随机删除
info.get(key) 获取
key in info 判断key是否在info中
info.values()  
info.keys()  
info.setdefault(key:value) 若能取到key则取出,如果不能则赋值
info.update(info2) 合并,有交叉则更新,没有交叉则创建
info.items() 字典转换为列表
dict.fromkeys([‘1‘,‘2‘,‘3‘], ‘good‘) 创建新字典,但是改其中一个value,其余的全部被改变,类似于浅copy

 

 

 

 

 

 

 

 

 

 

 

 

注:1.key尽量不要使用中文;

2.循环的方式:

第一种高效,推荐使用

for i in info:
    print(i, info[i])

第二种由于要将字典转换为列表,效率低下,不推荐使用:

for k,v in info.items():
    print(k, v)

 

study_notes(2)

标签:判断字符串   translate   dig   and   pycha   api   更新   ted   microsoft   

原文地址:https://www.cnblogs.com/stumn/p/8482920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!