标签:
---恢复内容开始---
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(\t)转换为空格(默认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(变量)),查看变量类型的详细方法情况
标签:
原文地址:http://www.cnblogs.com/crucial/p/5746891.html