Python
Python 官网: http://https://www.python.org
Pychorm 官网: http://www.jetbrains.com/pycharm
@(学习笔记)[Python]
Python的初始配置
windows
1. python的多版本安装
- 安装从官网下载的安装包
- 进入第一个版本安装目录 给pychon.exe改名, 如pychon2.exe, 再进入第二个版本安装目录 给python.exe改名, 如python3.exe
- 将上面两个路径添加到系统环境变量及Scripts路径也添加到环境变量(有些电脑需要重启电脑才能生效)
2. python常用第三方库的安装
python2 -m pip install
python3 -m pip install numpy
- …
- 附上python常用第三方库网址: http://www.lfd.uci.edu/~gohlke/pythonlibs/
3. pycharm使用多版本python的配置
- 打开pychorm
- 依次点击file-> Settings-> Project:python-> Project Interpreterl
- 选择要使用的python版本号
4. 将py文件打成exe
pip install pyinstaller
pyinstaller -F decode.py
常用函数或命令
- 调用windows命令dir
cmd_res = os.popen('dir').read()
print (cmd_res)
- 判断数据是否是字符串
st = 'bingwuss'
st.isdigit()
or
type(st) is str
- 判断是否是数字(可以是字符串形式)
s = '12'
s.isdigit()
or
s = 3
s.isdigit()
序列
com(seq1, seq2)
比较两个序列len(seq)
求取序列的长度max(seq)
求取序列中元素最大值min(seq)
求取序列中元素最小值enumerate(seq)
获取列表每个数据的偏移量和值 返回一个生成器对象
tuple(元组)
tuple(list)
将列表转换为元组
list(列表)
list.append(obj)
在列表末尾添加新的对象list.count(obj)
统计某个元素在列表中出现的次数list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)返回值为Nonelist.index(obj)
从列表中找出某个值第一个匹配项的索引位置list.insert(index, obj)
将对象插入列表list.pop(obj=list[-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值list.remove(obj)
移除列表中某个值的第一个匹配项list.reverse()
反向列表中元素list.sort([func])
对原列表进行排序
dict(字典)
dict.clear()
删除字典内所有元素dict.copy()
返回一个字典的浅复制dict.fromkeys(seq, val)
创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为defaultdict.has_key(key)
如果键在字典dict里返回true,否则返回falsedict.items()
以列表返回可遍历的(键, 值) 元组数组dict.keys()
以列表返回一个字典所有的键dict.values()
以列表返回字典中的所有值dict.update(dict2)
把字典dict2的键/值对更新添加到dict里dict.pop(key, default)
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。dict.popitem()
随机返回并删除字典中的一对键和值。
字符串
常用命令
str.capitalize()
将字符串的第一个字符转换为大写
string = 'hello World'
print(string.capitalize())
swapcase()
将字符串中大写转换为小写,小写转换为大写
string = 'hello World'
print(string.swapcase())
str.upper()
转换字符串中的小写字母为大写
string = 'hello World'
print(string.upper())
str.lower()
转换字符串中的大写字母为小写
string = 'hello World'
print(string.lower())
str.center(width, fillchar)
返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格
string = 'hello World'
print(string.center(20, '*'))
str.ljust(width, fillchar)
返回一个原字符串左对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
string = 'hello World'
print(string.ljust(20, '*'))
str.rjust(width, fillchar)
返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
string = 'hello World'
print(string.rjust(20, '*'))
str.zfill (width)
返回长度为 width 的字符串,原字符串右对齐,前面填充0
string = 'hello World'
print(string.zfill(20)
str.lstrip(chars=None)
截掉字符串 左边的空格或指定字符
string = ' hello World'
print(string.lstrip ('hel'))
str.rstrip(chars=None)
删除字符串 末尾的空格或指定字符
string = 'hello World'
print(string.rstrip ('rld'))
strip(chars=None)
在字符串上执行 lstrip()和rstrip()
string = '22hello World2'
print(string.strip ('2'))
str.count(str, beg= 0,end=len(string))
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
string = '22hello World2'
print(string.count('l', 2, -1))
str.split(str="", num=string.count(str))
num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅使用 num 个str截取字符串
string = 'hello World'
print(string.split('l', 3))
str.splitlines([keepends])
按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符
bytes.decode(encoding="utf-8", errors="strict")
Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回
str.encode(encoding='UTF-8',errors='strict')
以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是‘ignore’或者‘replace’
str.endswith(str='', beg=0, end=len(string))
检查字符串是否以 str 结束,如果beg 或者 end 指定则检查指定的范围内是否以 str 结束,如果是,返回 True,否则返回 False
string = 'hello World'
print(string.endswith('o', 0, 4))
str.expandtabs(tabsize=8)
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8
str.find(str='', beg=0 end=len(string))
检测 str 是否包含在字符串中 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
string = 'helloWorld'
print(string.find('o', 0, 6))
str.rfind(str='', beg=0,end=len(string))
类似于 find()函数,不过是从右边开始查找
string = 'helloWorld'
print(string.rfind('o', 0, 6))
str.index(str='', beg=0, end=len(string))
跟find()方法一样,只不过如果str不在字符串中会报一个异常
string = 'helloWorld'
print(string.index('o', 0, 6))
str.rindex( str='', beg=0, end=len(string))
类似于 index(),不过是从右边开始
string = 'helloWorld'
print(string.rindex('o', 0, 6))
str.isalnum()
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
string = 'hello2World'
print(string.isalnum())
str.isalpha()
如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
string = 'helloWorld'
print(string.isalpha())
str.isdigit()
如果字符串只包含数字则返回 True 否则返回 False
string = '2244'
print(string.isdigit())
str.islower()
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
string = 'hello world'
print(string.islower())
str.isupper()
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
sring = 'HELLO WORLD'
print(string.isupper())
str.isnumeric()
如果字符串中只包含数字字符,则返回 True,否则返回 False
string = 'Ⅷ'
print(string.isnumeric())
str.isspace()
如果字符串中只包含空白,则返回 True,否则返回 False
string = ' '
print(string.isspace())
str.istitle()
如果字符串是标题化的(见 title())则返回 True,否则返回 False
string = 'Hello World'
print(string.istitle())
str.title()
返回“标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
string = 'hello world'
print(string.title())
str.maketrans()
创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标str.translate(table, deletechars="")
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)
str = "this is string example....wow!!!"
print (str.translate(trantab))
以上实例输出结果如下:
th3s 3s str3ng 2x1mpl2....w4w!!!
max(str)
返回字符串 str 中最大的字母min(str)
返回字符串 str 中最小的字母str.replace(old, new, count=None)
把将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次
string = 'hello world'
print(string.replace('l', 'k', 2))
str.startswith(str='', start=None, end=None)
检查字符串是否是以 str开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查
string = 'hello world'
print(string.startswith('he'))
str.endswith(str='', start=None, end=None)
检查字符串是否是以 str结尾,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查
string = 'hello world'
print(string.startswith('ld'))
str.isdecimal()
检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false
string = '3241'
print(string.isnumeric())
文件操作
open()
打开文件
readline()
读取一行readlines()
读取所有行 放到一个列表里 适合读小文件read()
读取剩下的内容 文件大时不要用write()
像文件写入土内容close()
关闭文件
“`python
file = open(‘file’, ‘a’, encoding = ‘utf-8’)
file.close()
字符编码
sys.getdefaultencoding()
获得编码格式
编码格式转换