编码转换:
示例:
#这是python2.7中
#_*_ coding:utf-8 _*_
temp = "你好,世界" # utf-8
#解码,需要指定原来是什么编码
temp_unicode = temp.decode("utf-8")
#编码,需要指定原来是什么编码
temp_gbk = temp_unicode.encode("gbk")
print(temp_gbk)
#在python 3中
temp = "你好,世界"
temp_gbk = temp.encode("gbk")
print(temp_gbk)
运算符
1,算数运算:
假设变量a持有10和变量b持有20,则:
运算符 | 描述 | 实例 |
+ | 加法 - 对操作符的两侧加值 | a + b = 30 |
- | 减法 - 从左侧操作数减去右侧操作数 | a - b = -10 |
* | 乘法- 相乘运算符两侧的值 | a * b= 200 |
/ | 除 - 由右侧操作数除以左侧操作数 | b / a = 2 |
% | 模 - 由右侧操作数和余返回除以左侧操作数 | b % = 0 |
** | 指数- 执行对操作指数(幂)的计算 | a**b = 10 幂为 20 |
// | 地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商。 | 9//2 = 4 而 9.0//2.0= 4.0 |
实例:
#!/usr/bin/python
a = 20
b = 10
c = 0
c = a + b
print "w1 ", c
c = a - b
print "w2 ", c
c = a * b
print "w3 ", c
c = a / b
print "w4 ", c
c = a % b
print "w5 ", c
a = 2
b = 3
c = a**b
print "w6 ", c
a = 10
b = 5
c = a//b
print "w7 ", c
运算结果:
w1 30
w2 10
w3 200
w4 2
w5 0
w6 8
w7 2
2,比较运算
假设变量a持有10和变量b持有20,则:
运算符 | 描述 | 示例 |
== | 检查两个操作数的值是否相等,如果是,则条件变为真。 | (a == b) 不为 true. |
!= | 检查两个操作数的值是否等相等,如果值不相等,则条件变为真。 | (a != b) 为 true. |
<> | 检查两个操作数的值是否等相等,如果值不相等,则条件变为真。 | (a <> b) 结果为true。这类似于!=运算符。 |
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 | (a > b) 为 true. |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 | (a < b) 为true. |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 | (a >= b) 不为 true. |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 | (a <= b) 为 true. |
实例:
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 a = 20 5 b = 10 6 c = 0 7 8 if ( a == b ): 9 print "e1 等于 b" 10 else: 11 print "e1 不等于 b" 12 13 if ( a != b ): 14 print "e2 不等于 b" 15 else: 16 print "e2 等于 b" 17 18 if ( a <> b ): 19 print "e3 不等于 b" 20 else: 21 print "e3 等于 b" 22 23 if ( a < b ): 24 print "e4 小于 b" 25 else: 26 print "e4 大于等于 b" 27 28 if ( a > b ): 29 print "e5 大于 b" 30 else: 31 print "e5 小于等于 b" 32 33 34 if ( a <= b ): 35 print "e6 小于等于 b" 36 else: 37 print "e6 大于 b" 38 39 if ( b >= a ): 40 print "e7 大于等于 b" 41 else: 42 print "e7 小于 b" 43 44 运算结果: e1 不等于 b e2 不等于 b e3 不等于 b e4 大于等于 b e5 大于 b e6 大于 b e7 小于 b
3,赋值运算
运算符 | 描述 | 示例 |
= | 简单的赋值运算符,赋值从右侧操作数左侧操作数 | c = a + b 类似于 a + b 到 c |
+= | 添加和赋值操作符,它增加了右操作数左操作数和结果赋给左操作数 | c += a 类似于 c = c + a |
-= | 减和赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数 | c -= a 类似于 c = c - a |
*= | 乘法和赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数 | c *= a 类似于 c = c * a |
/= | 除和赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数 | c /= a 类似于 c = c / a |
%= | 模量和赋值操作符,它需要使用两个操作数模和结果赋给左操作数 | c %= a 类似于 c = c % a |
**= | 指数和赋值运算符,执行指数(幂)计算操作符和赋值给左操作数 | c **= a 类似于 c = c ** a |
//= | 地板除,并分配一个值,执行地板划分对操作和指定值到左操作数 | c //= a 类似于 c = c // a |
实例:
#!/usr/bin/python # -*- coding: UTF-8 -*-
a = 20
b = 10
c = 0
c = a + b
print "q1的值为:", c
c += a
print "q2的值为:", c
c *= a
print "q3的值为:", c
c /= a
print "q4的值为:", c
c = 2
c %= a
print "q5的值为:", c
c **= a
print "q6的值为:", c
c //= a
print "q7的值为:", c
运算结果:
q1的值为: 30
q2的值为: 50
q3的值为: 1000
q4的值为: 50
q5的值为: 2
q6的值为: 1048576
q7的值为: 52428
4,逻辑运算
假设变量a持有10和变量b持有20:
运算符 |
描述 | 例子 |
and | 所谓逻辑与运算符。如果两个操作数都为真,则条件为真。 | (a and b) 为 true. |
or | 所谓逻辑OR运算符。如果有两个操作数都为非零,则条件变为真。 | (a or b) 为 true. |
not | 所谓逻辑非运算符。用反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将为false。 | not(a and b) 为 false. |
实例:
a = 10 b = 20 if ( a and b ): print " a 和 b 都为 true" else: print " a 和 b 有一个不为 true" if ( a or b ): print " a 和 b 都为 true,或其中一个变量为 true" else: print " a 和 b 都不为 true" # 修改变量 a 的值 a = 0 if ( a and b ): print " a 和 b 都为 true" else: print " a 和 b 有一个不为 true" if ( a or b ): print " a 和 b 都为 true,或其中一个变量为 true" else: print " a 和 b 都不为 true" if not( a and b ): print " a 和 b 都为 false,或其中一个变量为 false" else: print " a 和 b 都为 true"
运算结果:
a 和 b 都为 true
a 和 b 都为 true,或其中一个变量为 true
a 和 b 有一个不为 true
a 和 b 都为 true,或其中一个变量为 true
a 和 b 都为 false,或其中一个变量为 false
5,成员运算
运算符 | 描述 | 实例 |
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
实例:
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 10 b = 20 list = [1, 2, 3, 4, 5 ]; if ( a in list ): print "a 在给定的列表中 list 中" else: print "a 不在给定的列表中 list 中" if ( b not in list ): print "b 不在给定的列表中 list 中" else: print "b 在给定的列表中 list 中" # 修改变量 a 的值 a = 2 if ( a in list ): print "a 在给定的列表中 list 中" else: print "a 不在给定的列表中 list 中"
运算结果:
a 不在给定的列表中 list 中
b 不在给定的列表中 list 中
a 在给定的列表中 list 中
Pychorm 的设置
1,模板
file => settings =>Editor => file and code template => python script =>右上方 #!/usr/bin/env python # _*_ coding:utf-8 _*_ 按OK确定
2,文字大小
file => settings =>Editor => color and font =>font =>save as ... =>14
3,运行(3种方法)
a,点击运行文件,右键 rum
b,view => tooldar
选中要执行的文件
点击 运行
c,在当前文件空白处,右键,rum
4,切换py版本
file => settings =>project interpreter => 选择版本
基本数据类型
1,数字
整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
1, n1 = 123 n2 = 456 print(n1 + n2) #print(n1._add_(n2)) 这是内部执行的 2, n1 = 4 ret = n1.bit_length() #获取数字在二进制中的最短位数 print(ret)
2,字符串(str)
1,capitalize 首字母变大写
示例: a1 = "alex" ret = a1.capitalize() print(ret) 2,center 让字符串居中
示例: a1 = "alex" a1.center(10,"*") print(ret) 3,count 在子 字符串中出现几个 a1 = "alex is alph" ret = a1.count("a1") print(ret) a1 = "alex is alph" ret = a1.count("a1",0,8) print(ret) 4,endswith 是否以什么结尾 示例:
temp = "hello" print(temp.endswith("o")) 5,expandtads 一个tab换成8个空格 示例:
content = ("hello\t999") print(content.expandtads()) print(content.expandtads(20)) 6,find 能找到就到那个位子,没找到就返回一个-1 示例:
s = "alex hello" print(s.find("p") 7,format 字符串的格式化 示例:
s = "hello {0}, age {1}" print(s) # {0} 占位符 new1 = s.format("alex", 19) print(new1) 运算结果: hello {0}, age {1} hello alex, age 19 8,index获取子序列的位子,如果没找到就报错 示例:
s = "alex hello" print(s.index("p") 9,isalnum 判断字符串是否是字母和数字 #接self表示不用添加参数 示例:
a = "alex5" a.isalnum()
10,isalpha 是否是字母
11,iadigit 是否是数字 12,islower 是否是小写
13,title 变成标题 示例:
s = "the schol" ret = s.title() print(ret) 运算结果: The School 14,istitle 是否是标题
15,isupper 检验是否全部是大写 16,join 用**连接 示例:
li = ["alex", "eric"] #中括号表示列表类型 s = "**".join(li) print(s) li = ("alex", "eric") #小括号表示元祖类型 s = "**".join(li) print(s) 17,ljust 内容左对齐,右侧填充
18,rjust 内容右对齐,左侧填充
19,lstrip 移除左边的空格 示例:
s =" alex " news = s.lstrip() print(news) 20,strip 移除两边空白 rstrip 移除右边的空格 示例:
s =" alex " news = s.rstrip() print(news) 21,partition 从左找 ,分割,前,中,后三部分 示例:
s = " hello is world " ret = s.partition('is') print(ret)
22,rpartition 从右找,分割,前,中,后三部分
23,replace 表示替换 示例:
s = " hello is world " ret = s.replace('l','a') print(ret) s = " hello is world " ret = s.replace('l','a',2) #从左起到第二个 print(ret)
24,rsplit 从右找 分割
25,split 从左找 分割
示例:
s = "alexalexalex"
ret = s.split("e")
print(ret)
运算结果:
['al', 'xal', 'xal', 'x']
s = "alexalexalex"
ret = s.split("e",2)
print(ret)
运算结果:
['al', 'xal', 'xalex']
26,splitlines 根据换行分割
27,startswith 是否以某个字符串开始
28,swapcase 大写变小写,小写变大写
示例:
s = "aLeX"
print(s.swapcase())
运算结果:
AlEx
29,upper 变大写
基本操作:
1,索引
示例: s = "hello" print(s[0]) print(s[1]) print(s[2]) print(s[3]) print(s[4]) ret = len(s) #len 表示有几个字符串 print(ret) 运算结果: h e l l o 5
2,长度
#len 表示有几个字符串 示例:
s = "hello" ret = len(s) print(ret) 运算结果: 5
3,切片
切片
示例:
s = "hello" print(s[0:2]) 运算结果: he
4,循环
#while循环 示例:
s = "hello" start = 0 while start <len(s): temp = s[start] print(temp) start +=1 运算结果: h e l l o #for循环 #continue,break在for循环中一样适用 示例:
s = "hello" for item in s: #item变量名 print(item) 运算结果: h e l l o s = "hello" for item in s: if item =="l": continue print(item) 运算结果: h e o s = "hello" for item in s: if item =="l": break print(item) 运算结果: h e
4,列表list
源码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 class list(object): 2 """ 3 list() -> new empty list 4 list(iterable) -> new list initialized from iterable's items 5 """在数组的末尾新增一项 6 def append(self, p_object): # real signature unknown; restored from __doc__ 7 """ 8 L.append(object) -- append object to end """ 9 pass 10 11 def count(self, value): # real signature unknown; restored from __doc__ 12 """ 查看lst中某一项出现的次数 13 L.count(value) -> integer -- return number of occurrences of value """ 14 return 0 15 16 def extend(self, iterable): # real signature unknown; restored from __doc__ 17 """将原列表与其他列表扩展成新列表 18 L.extend(iterable) -- extend list by appending elements from the iterable """ 19 pass 20 21 def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__ 22 """返回列表中第一个匹配项的下标,找不到会报错 23 L.index(value, [start, [stop]]) -> integer -- return first index of value. 24 Raises ValueError if the value is not present. 25 """ 26 return 0 27 28 def insert(self, index, p_object): # real signature unknown; restored from __doc__ 29 """在指定位置插入项 30 L.insert(index, object) -- insert object before index """ 31 pass 32 33 def pop(self, index=None): # real signature unknown; restored from __doc__ 34 """返回指定位置的值,并将其从列表中删除。默认对末尾项操作 35 L.pop([index]) -> item -- remove and return item at index (default last). 36 Raises IndexError if list is empty or index is out of range. 37 """ 38 pass 39 40 def remove(self, value): # real signature unknown; restored from __doc__ 41 """从列表中移除第一个符合与指定值相等的项 42 L.remove(value) -- remove first occurrence of value. 43 Raises ValueError if the value is not present. 44 """ 45 pass 46 47 def reverse(self): # real signature unknown; restored from __doc__ 48 """列表反转 49 L.reverse() -- reverse *IN PLACE* """ 50 pass 51 52 def sort(self, cmp=None, key=None, reverse=False): # real signature unknown; restored from __doc__ 53 """排序,数字、字符串按照ASCII,中文按照unicode从小到大排序。 54 L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*; 55 cmp(x, y) -> -1, 0, 1 56 """ 57 pass 58 59 def __add__(self, y): # real signature unknown; restored from __doc__ 60 """ 字符串拼接 61 x.__add__(y) <==> x+y """ 62 pass 63 64 def __contains__(self, y): # real signature unknown; restored from __doc__ 65 """ 判断列表中是否包含某一项 66 x.__contains__(y) <==> y in x """ 67 pass 68 69 def __delitem__(self, y): # real signature unknown; restored from __doc__ 70 """删除列表中指定下标的项 71 x.__delitem__(y) <==> del x[y] """ 72 pass 73 74 def __delslice__(self, i, j): # real signature unknown; restored from __doc__ 75 """删除指定下标之间的内容,向下包含 76 x.__delslice__(i, j) <==> del x[i:j] 77 78 Use of negative indices is not supported. 79 """ 80 pass 81 82 def __eq__(self, y): # real signature unknown; restored from __doc__ 83 """ 判断两个列表是否相等 84 x.__eq__(y) <==> x==y """ 85 pass 86 87 def __getattribute__(self, name): # real signature unknown; restored from __doc__ 88 """ 无条件被调用,通过实例访问属性。 89 x.__getattribute__('name') <==> x.name """ 90 pass 91 92 def __getitem__(self, y): # real signature unknown; restored from __doc__ 93 """ x.__getitem__(y) <==> x[y] """ 94 pass 95 96 def __getslice__(self, i, j): # real signature unknown; restored from __doc__ 97 """ 98 x.__getslice__(i, j) <==> x[i:j] 99 100 Use of negative indices is not supported. 101 """ 102 pass 103 104 def __ge__(self, y): # real signature unknown; restored from __doc__ 105 """ x.__ge__(y) <==> x>=y """ 106 pass 107 108 def __gt__(self, y): # real signature unknown; restored from __doc__ 109 """ x.__gt__(y) <==> x>y """ 110 pass 111 112 def __iadd__(self, y): # real signature unknown; restored from __doc__ 113 """ x.__iadd__(y) <==> x+=y """ 114 pass 115 116 def __imul__(self, y): # real signature unknown; restored from __doc__ 117 """ 118 x.__imul__(y) <==> x*=y """ 119 pass 120 121 def __init__(self, seq=()): # known special case of list.__init__ 122 """ 123 list() -> new empty list 124 list(iterable) -> new list initialized from iterable's items 125 # (copied from class doc) 126 """ 127 pass 128 129 def __iter__(self): # real signature unknown; restored from __doc__ 130 """ x.__iter__() <==> iter(x) """ 131 pass 132 133 def __len__(self): # real signature unknown; restored from __doc__ 134 """ x.__len__() <==> len(x) """ 135 pass 136 137 def __le__(self, y): # real signature unknown; restored from __doc__ 138 """ x.__le__(y) <==> x<=y """ 139 pass 140 141 def __lt__(self, y): # real signature unknown; restored from __doc__ 142 """ x.__lt__(y) <==> x<y """ 143 pass 144 145 def __mul__(self, n): # real signature unknown; restored from __doc__ 146 """ x.__mul__(n) <==> x*n """ 147 pass 148 149 @staticmethod # known case of __new__ 150 def __new__(S, *more): # real signature unknown; restored from __doc__ 151 """ T.__new__(S, ...) -> a new object with type S, a subtype of T """ 152 pass 153 154 def __ne__(self, y): # real signature unknown; restored from __doc__ 155 """ x.__ne__(y) <==> x!=y """ 156 pass 157 158 def __repr__(self): # real signature unknown; restored from __doc__ 159 """ x.__repr__() <==> repr(x) """ 160 pass 161 162 def __reversed__(self): # real signature unknown; restored from __doc__ 163 """ L.__reversed__() -- return a reverse iterator over the list """ 164 pass 165 166 def __rmul__(self, n): # real signature unknown; restored from __doc__ 167 """ x.__rmul__(n) <==> n*x """ 168 pass 169 170 def __setitem__(self, i, y): # real signature unknown; restored from __doc__ 171 """ x.__setitem__(i, y) <==> x[i]=y """ 172 pass 173 174 def __setslice__(self, i, j, y): # real signature unknown; restored from __doc__ 175 """ 176 x.__setslice__(i, j, y) <==> x[i:j]=y 177 178 Use of negative indices is not supported. 179 """ 180 pass 181 182 def __sizeof__(self): # real signature unknown; restored from __doc__ 183 """ L.__sizeof__() -- size of L in memory, in bytes """ 184 pass 185 186 __hash__ = None 187 188 list 189 190 list Code
name_list = ["eirc","alex","tony"] print(name_list) 运算结果: ['eirc', 'alex', 'tony']
基本操作:
索引 name_list = ["eirc","alex","tony"] print(name_list[0]) 运算结果: eirc 切片 name_list = ["eirc","alex","tony"] print(name_list[0:2]) 运算结果: ['eirc', 'alex'] # len name_list = ["eirc","alex","tony"] print(name_list[2:len(name_list)]) 运算结果: ['tony'] # for for i in name_list: print(i) # 列表内部提供的其他功能 append 追加 示例: name_list = ["eirc","alex","tony"] name_list.append('seven') print(name_list) 运算结果: ['eirc', 'alex', 'tony', 'seven'] 示例: name_list = ["eirc","alex","tony"] name_list.append('seven') name_list.append('seven') name_list.append('seven') name_list.append('seven') print(name_list,count('seven')) 运算结果: 4 # iterable 可迭代的 name_list = ["eirc","alex","tony"] temp = [11,22,33,44] name_list.extend(temp) print(name_list) 运算结果: ['eirc', 'alex', 'tony', 11, 22, 33, 44] index 找出所在位子的索引 name_list = ["eirc","alex","tony"] temp = [11,22,33,44] name_list.extend(temp) print(name_list.index('alex')) 运算结果: 1 insert 插入 示例: name_list = ["eirc","alex","tony"] temp = [11,22,33,44] name_list.extend(temp) name_list.insert(1,'hello') print(name_list) 运算结果: ['eirc', 'hello', 'alex', 'tony', 11, 22, 33, 44] pop 移除尾部的参数并且可以赋值到一个变量上a1 示例: name_list = ["eirc","alex","tony"] temp = [11,22,33,44] name_list.extend(temp) name_list.insert(1,'hello') print(name_list) a1 = name_list.pop() print(name_list) print(a1) 运算结果: ['eirc', 'hello', 'alex', 'tony', 11, 22, 33, 44] ['eirc', 'hello', 'alex', 'tony', 11, 22, 33] 44 remove 移除一个 要想都移除只能多次执行 示例: name_list = ['eirc', 'hello','alex', 'alex', 'tony', 11, 22, 33, 44] name_list.remove('alex') print(name_list) 运算结果: ['eirc', 'hello', 'alex', 'tony', 11, 22, 33, 44] reverse 翻转 示例: name_list = ['eirc', 'hello','alex', 'alex', 'tony', 11, 22, 33, 44] name_list.reverse() print(name_list) 运算结果: [44, 33, 22, 11, 'tony', 'alex', 'alex', 'hello', 'eirc'] del 删除一个索引 name_list = ["eirc","alex","tony"] del name_list[1] print(name_list) 运算结果: ['eirc', 'tony'] #切片,范围删除 name_list = ["eirc","alex","tony"] del name_list[1:3] print(name_list) 运算结果: ["eirc"]
元祖tuple
元组: name_tuple = ('alex', 'eric') # 索引 print(name_tuple[0]) # len print(name_tuple[len(name_tuple)-1]) # 切片 print(name_tuple[0:1]) # for for i in name_tuple: print(i) # 删除 # del name_tuple[0] 不支持 # count,计算元素出现的个数 print(name_tuple.count('alex')) # index 获取指定元素的索引位置 print(name_tuple.index('alex'))
字典dict
字典: name_tuple = ('alex', 'eric') # 索引 print(name_tuple[0]) # len print(name_tuple[len(name_tuple)-1]) # 切片 print(name_tuple[0:1]) # for for i in name_tuple: print(i) # 删除 # del name_tuple[0] 不支持 # count,计算元素出现的个数 print(name_tuple.count('alex')) # index 获取指定元素的索引位置 print(name_tuple.index('alex'))
详细请参考
http://www.cnblogs.com/wupeiqi/articles/5444685.html