---恢复内容开始---
-
python文件
-
文件开头要有 #!/usr/bin/ python --在linux中是告诉系统phthon的路径是在/usr/bin/ python目录下,在执行python文件时可以使用 ./文件名 ,如:./h.py 即可执行
-
所以python2.7文件开头都需要有 # -*- coding:utf-8 -*- 这句来设置编码格式
-
当有中文输出时,常会输出为乱码,这是因为代码是utf-8格式的,但显示终端的编码格式是gbk格式的。如果显示终端的格式是utf-8格式的则会正常显示,但如果是gbk格式的,就显示为乱码了。而utf-8编码与gbk编码同为unicode(万国码)的简化和优化,只是编码方式不一样。要解决中文输出显示乱码的问题,需把utf-8格式先解码成unicode,再以gbk编码,再输出,即可正常显示中文,如下:
-
1 # -*- coding:utf-8 -*- 2 3 temp = “你好” 4 5 #先把utf-8解码为unicode 6 7 temp_unicode = tem.decode(‘utf-8’) #这里的utf-8是指定原来的编码是utf-8编码 8 9 temp_gbk = temp_unicode.encode(“gbk”) #这里的gbk是指定以gbk格式进行编码 10 11 print(temp_gbk) 12 13 #到了py3中自动转换utf-8 unicode gbk,utf-8可直接编码成gbk 14 15 #py3中移除了python的unicode类型
-
-
-
在cmd命令窗口中输入python可以进入pythod的录入环境,输入exit()即可退出这个编辑环境
-
注释
-
单行注释,使用 #
-
多行注释,使用 “”” 多行内容 “””
-
-
导入文件
-
python为用户提供的 .py 文件
-
导入时 使用import 后面写导入文件的名称(不带.py)
-
执行程序后会自动生成同名的 .pyc字节码文件,这个就相当于缓存文件
-
执行时会优先找 .pyc文件,并执行,如果找不到 .pyc文件,则会去找 .py文件,并执行
-
-
获取输入文本
-
i1 = raw_input(“Username: “),获取明文录入的文本
-
i2 = getpass.getpass(“Password: ”) (在使用此句前需导入文件 import getpass)
-
-
创建 xxx.py 文件
-
建议 文件名、存放路径 都不要有中文
-
头部两行的代码较特殊,必须要有
-
-
基本数据类型
-
数字: a1 = 123
-
字符串: s1 = “abc” 或 s2 = ‘ABC’ 或 s3=”””cde”””(三引号中的内容是多行文本字符串)
-
布尔值: isAble = true
-
-
流程控制
-
if
-
if 条件 : 内容一 内容二 elif 条件 : 内容五 内容六 else : 内容三 内容四 |
-
python 是严格按缩进来执行的
-
一个等号是赋值,两个等号是比较, != 是不等于
-
while
while 条件 : 内容一 |
-
time.sleep(1) 暂停1秒钟
-
break,可以跳出整个循环
-
continue,跳出本次循环,继续下次循环
-
pass,什么都不做,不可以空着不写,写个pass即可
-
for循环
s7 = "Return a copy of the string" for item in s7: print item |
-
enumerate()
-
接受参数可以是列表
-
用于中for循环时自动给列表项生成一列,默认从0开始,自增1
-
li = ["Computer","iphone","Watch","Car"] for key,item in enumerate(li): print(key,item) inp = input("请输入商品:") inp_num = int(inp) print(li[inp_num]) ------------------------输出------------------------- (0, 'Computer') (1, 'iphone') (2, 'Watch') (3, 'Car') 请输入商品:0 Computer |
-
运算符
-
算数运算
-
+ - * / %(取余) **(幂,返回x的y次幂) //(取整数,返回商的整数部分)
-
-
py2: 9/2 = 4 9/2=4.5 (需导入模块,如:from __future__ import division) py3: 9/2 = 4.5 |
-
PyCharm中设置py文件的模板,给头部添加上固定的两行:file àsetting àEditor àfile and code template àpython script -> 录入固定的两行 àOK
-
PyCharm中切换py版本,file à settings à project interpreter à 选择版本
-
比较运算符: == != <> > < >= <=
-
赋值运算符: = += -= *= /= %= **=
-
ctrl + / 注释快捷键
-
逻辑运算符:and or not
-
成员运算符: in not in
-
基本数据类型
-
数字 int
-
int类中有__的方法,是有特殊功能的方法
-
-
n1 = 123 n2 = 456 print(n1 + n2) 就相当于 print(n1.__add__(n2)) |
-
bit_length(),获取可表示的二进制最短位数
n1 = 4 #00000100 ret = n1.bet_length() print(ret) |
-
字符串 str
-
capitalize()方法,首字母大写
-
center(长度,空白填充字符)方法,把当前字符串显示到中间,空白部分用指定字符替换
-
count()方法,子序列的个数,指定字符串中当前字符串中重复出现的个数
-
decode()方法,解码
-
encode()方法,编码
-
endswith()方法,[获取字符串里大于等于0的位置,小于2的位置] ,是否以xxx结束
-
expandtabs()方法,把tab( )转换为空格(默认8个空格)
-
find()方法,查找子序列首次出现的位置,如果没找到,返回-1
-
format()方法,字符串序列化
-
s = "hello {0}, age {1}" print(s) s2 = s.format("alex",20) print(s2) ------------------------输出------------------------- hello {0}, age {1} hello alex, age 20 |
-
index()方法,查找子序列的位置,如果没有找到,报错
-
int(字符串),把指定字符串转换为数字并返回
-
isalnum()方法,判断是否同时有字母和数字
-
isalpha()方法,判断是否都是字母
-
isdigit()方法,判断是否是数字
-
islower()方法,判断是否小写
-
isspace()方法,判断是否是空格
-
istitle()方法,判断是否是标题(每个单词的首字母大写)
-
join()方法,连接
li = ["alex","eric"] s3 = "_".join(li) print(s3) ------------------------输出------------------------- alex_eric |
-
ljust()方法,内容做对齐,右侧填充,与center()类似
-
lower()方法,变小写
-
len()方法,返回字符串长度
-
lstrip()方法,移除左侧空白
-
partition()方法,分割字符串成左中右三部分
-
split()方法,分割字符串
-
replace()方法,替换字符串
-
rfind()方法,从右向左找
-
rindex()方法,类似于lindex(),只是这里的是从右向左找
-
rjust()方法,类似于ljust(),方向与ljust()相反
-
rpartition()方法,与partition()类似,方向与partition()相反
-
rsplit()方法,与split()方法类似,方向与split()方向相反
-
rstrip()方法,与lstrip()方法类似,方向与lstrip()方向相反
-
strip()方法,去除左右两侧的空格
-
startswith()方法,判断字符串是否以指定字符串开始
-
swapcase()方法,小写变大写,大写变小写
-
title()方法,把文本变成标题
-
upper()方法,把文本转换为大写
-
切片
s6 = "alex" print(s6[0:2]) #大于等于左边,小于右边 ------------------------输出------------------------- al |
-
布尔值 bool
-
列表 list
-
append()方法,追加元素
-
count()方法,统计某元素有多少个
-
extend()方法,批量想列表中追加数据
-
index()方法,获取某个元素的索引
-
insert()方法,向某个索引处插入元素
-
pop()方法,把最后一个元素移除,并可以返回被移除的元素
-
remove()方法,移除某个元素,只移除从左侧找到的第一个
-
reverse()方法,反转列表
-
sort()方法,排序列表
-
del 列表[index] ,删除列表指定索引的元素
-
-
元组 tuple
-
元组与列表几乎是一样的,列表可以修改,元组不可以修改
-
-
字典 dict
-
字典的每个元素都是一个键值对,有点类似于简单的JSON对象
-
user_info = { "name":"alex", "age":73, "gender":"M" } |
-
字典元素的索引就是对应的key字符串
-
字典不支持切片
-
keys()方法,获取字典中的所有key
-
values()方法,获取字典中所有value
-
items()方法,获取字典中所有的键值对
-
for循环
-
for循环时字典时,默认输出key,即:for k in user_info 等同于 for k in user_info.keys()
-
如果要循环出字典的值,则:for v in user_info.values()
-
如果要同时循环出字典的键和值,则: for k,v in user_info.items()
-
-
clear()方法,清空字典中所有元素
-
get()方法,根据key获取值,如果key不存在,可以指定一个任意值
-
haskey()方法,检查字典中指定key是否存在,也可以使用in来代替
-
pop()方法,获取并中字典中移除
-
setdefault()方法,如果key不存在,则创建,如果存在,则返回已存在的值且不修改
-
update()方法,更新,批量把一个字典中的元素更新到另一个后面
-
del 字典[key],删除字典指定key的元素
-
range , xrange
-
range,中py2.7中用于获取指定范围内的数,如range(0,1000000),会一下子把这个范围内的数都创建出来,内存占用会急速上升
-
xrange,中py2.7中用于获取指定范围内的数,如range(0,1000000),初始时并不创建范围中的数,只有中for循环时才会创建其范围中的一个元素,性能大大提高
-
在py3中,没有了xrange,而是range,但其效果于py2.7中的xrange效果一样
-
range(0,10),获取0~9之间的所有数字,取数范围是大于等于左边的数,小于右边的数
-
li = ["Computer","iphone","Watch","Car"] n = len(li) for i in range(0,n): print(i,li[i]) ------------------------输出------------------------- (0, 'Computer') (1, 'iphone') (2, 'Watch') (3, 'Car') |
-
查看对象的类,或对象所具备的功能
-
type(变量) 函数可以查看变量的数据类型,然后可根据 ctrl+左键,查看内部所有方法
-
dir(变量),快速查看变量类型的全部方法
-
help(type(变量)),查看变量类型的详细方法情况
-