for i in range(x,y,z) ()中可以放三个变量,类似切片,但是要用逗号隔开而不是引号。
len()可以得到字符串的长度。
.split()括号里面什么都不加,就是默认把字符串变成列表。
小数据池的作用:节省内存。
计算1-3+5-7+9.....99的值:
1 sum = 0 2 count = 1 3 for i in range(1,100,2): #找到1,3,5...99的每个数 4 if count % 2 == 0: #奇数位加,偶数位减,所以引入一个count来计算奇偶位数 5 sum = sum - i 6 else: 7 sum = sum + i 8 count = count + 1 9 print(sum) 10 #-50
一个数据格式转换:
1 list3 = [ 2 {"name": "alex", "hobby": "抽烟"}, 3 {"name": "alex", "hobby": "喝酒"}, 4 {"name": "alex", "hobby": "烫头"}, 5 {"name": "alex", "hobby": "Massage"}, 6 {"name": "wusir", "hobby": "喊麦"}, 7 {"name": "wusir", "hobby": "街舞"}, 8 {"name": "taibai", "hobby": "开车"}, 9 {"name": "taibai", "hobby": "嫂子"}, 10 ] 11 list4 = [] 12 for el in list3: 13 for i in list4: 14 if el["name"] == i["name"]: 15 dic["hobby_list"].append(el["hobby"]) 16 break 17 else: 18 dic = {} 19 dic["name"] = el["name"] 20 dic["hobby_list"] = [el["hobby"]] 21 list4.append(dic) 22 print(list4)
python解释器执行下面的结果为:“a,b,c” *没有注意到"{0},{2},{1}"之间有逗号(粗心)
"{0},{2},{1}".format("a","b","c")
***元组中如果只有一个元素的话要写成 tu("alex",)如果没有逗号的话就不是元组,它的数据类型是字符串。
***在循环一个字典时给字典添加一个键值对会报错。
***dic={} dic.fromkeys("abc",666) 最终dic为{"a":666,"b":666,"c":666}是错的,fromkeys方法创建了一个新的字典与原来的字典没有关系。
***python2x默认编码是ASCII码,python3x默认编码是unicode。
**print()只是打印东西,没有返回值。
def extendList(val,list=[]): #默认值如果是可变的数据类型,每次使用的都是同一个。 list.append(val) return list list1 = extendList(10) list2 = extendList(123,[]) list3 = extendList("a") print('list1=%s' %list1) print("list2=%s" %list2) print("list3=%s" %list3) print(globals())
*枚举
lst = ["哈哈","呵呵","嘿嘿"] for index,el in enumerate(lst): #再一次运用了解构 print(index)#可以当成索引值 print(el)#打印出每个元素 # 0 # 哈哈 # 1 # 呵呵 # 2 # 嘿嘿 lst = ["哈哈","呵呵","嘿嘿"] for index,el in enumerate(lst,100): #后面填数字,索引号就从它开始 print(index) print(el) # 100 # 哈哈 # 101 # 呵呵 # 102 # 嘿嘿
py2和py3的区别:
编码&字符串
py2:
unicode v=u"root" 本质上用unicode存储(万国码)
(str/bytes) v = "root" 本质用字节存储
py3:
str v = "root" 本质上用unicode存储(万国码)
bytes v = b"root" 本质上用字节存储
编码:
py2:默认使用ascii码
文件头部可以修改编码格式:#-*- encoding:utf-8 -*-
py3:默认使用utf-8
注意:文件是如何存储的
继承:
py2:经典类、新式类
py3:新式类
范围:
py2:range/xrange
py3: range
打印:
py2:print "xx"
py3: print(xx)
输入:
py2:v1 = rew_input(“请输入您的内容”)
py3:v2 = input("请输入用户名:")
v = "asd"实现字符串的反转
print(v[::-1])
***s = {"1","2","3"} 一个集合 s = set()创建一个空集合
***获取错误信息的堆栈信息
import traceback def func(): try: a = a +1 except Exception as e: # 获取当前错误的堆栈信息 msg = traceback.format_exc() logging.error(msg) func()