极简python教程02:基础变量,删繁就简
python极简教程已经开赛,如果错过说明可以回翻:
借这个机会,我再讲讲我的教程和其他网上的教程的区别:
1 我分享的内容,是我在工作中会高频使用的语法,是精华内容
2 我剔除了“冗杂”知识,你只需要get到我提到的重点,轻松入门不是梦
3 你可以敲代码学习,效果最佳;亦可以收藏,待有需求时粘来即用
这一场,主讲python的变量类型。
目标:熟悉python中的基础变量类型,以及我们该重点关注的知识点。
说明:Python 中的变量赋值不需要类型声明。
常用的python变量类型是:
counter = 100 # 整型 miles = 1000.0 # 浮点型 name = "John" # 字符串 py_list = [123, 'john'] # 列表 py_tuple = (123, 'john') # 元组 py_dict = {'name': 'runoob','code':6734, 'dept': 'sales'} # 字典
整型和浮点型,就是整数和小数,学过数学的都清楚,没什么说的,我从字符串开始说起。
01 字符串
【常用场景1】格式转换,eg:字符串、json 、字典类型之间的转换
# 内置函数-字符串转json str1 = "{'key':1,'value':2}" eval(str1) # 一般转换采用此方法,但它有个问题,如果json中有null值,则无法使用,这时需要用到json库 import json json1= '{"key":null,"value":2}' dicts = json.loads(json1) # 可将json的null替换为python能识别的None print(dicts)
【常用场景2】单双引号使用
# 双引号中的双引号需要转义 string1 = "hello,my,\"god\" " # 单引号中的双引号不需要转义 string2 = 'hello, my "god" '
【常用场景3】多引号使用
# 比如我们需要在py文件里写一条sql语句 sql_a = 'select * from asset where asset_create_at >= "2018-08-01" ' # 注意每一个右引号左边都需要空格,写代码特别麻烦 sql_b = ('select * ' 'from asset ' 'where asset_id = "123456";' ) sql_c = ''' select * from asset where asset_create_at >= "2018-08-01" ''' # 也可以在三个引号内随意写,这种写法更加方便,但要注意,实际字符串是包含了三行,即sql前面换行的\n和sql后面的换行\n(其实无伤大雅)
02 列表
列表的索引 重点必须掌握!!!
lst = ['a', 'b', 'c','d','e','f'] lst.append('g') # 在列表尾部添加值 lst.pop(0) # 删除索引位置的值 lst[0] # 取index=0的值 lst[1:3] # 取index从0开始(不包括),到index=3的值
列表遍历迭代 重点必须掌握!!!
li = ['a', 'b', 'c', 'd', 'e'] # 一般的遍历 for i in li: print(i) # 带索引的遍历 for i, e in enumerate(li): print("index:",i,"element:",e)
【拓展场景1】:多列表迭代
# 循环嵌套 # 缺点:代码复杂度高 x_list, y_list, z_list = [], [], [] for x in x_list: for y in y_list: for z in z_list: None # itertools标准库 # 缺点:不方便调试 from itertools import product for x, y, z in product(x_list, y_list, z_list): None
【拓展场景2】:交集、并集、差集
a=[2,3,4,5] b=[2,5,8] # 交集 print(list(set(a).intersection(set(b)))) # 并集 list(set(a).union(set(b))) # 差集 list(set(b).difference(set(a))) # b中有而a中没有的 list(set(a).difference(set(b))) # a中有而b中没有的
03 元组
如何理解:可以将元组当成不可编辑的list(一般很少用到该类型)
('a','b','c','d')
04 字典
如何理解:key-value键值对
取值 重点必须掌握!!!
personinfo = {'name': 'joe', 'age':'20', 'hobby':'football'} personinfo['name']
遍历迭代 重点必须掌握!!!
personinfo = {'name': 'joe', 'age':'20', 'hobby':'football'} for k, v in personinfo.items(): print(k, v)
【实用场景1】合并和复制
# 合并 date_info = {'year': "2020", 'month': "01", 'day': "01"} track_info = {'artist': "Beethoven", 'title': 'Symphony No 5'} all_info = {**date_info, **track_info} # 添加值 date_info = {'year': '2020', 'month': '01', 'day': '7'} event_info = {**date_info, 'group': "Python Meetup"} # 在复制/合并字典的同时重写特定的值 event_info = {'year': '2020', 'month': '01', 'day': '7', 'group':'Python Meetup'} new_info = {**event_info, 'day': "14"}
【实用场景2】json和字典的转换 重点必须掌握!!!
import json data = {"spam" : "foo", "parrot" : 42} # 把python对象转换成json python_to_json = json.dumps(data) print(python_to_json) json_to_python = json.loads(python_to_json) # 将json转换成python对象 print(json_to_python)
05 拓展
isinstance:用来判断对象的类型,也可以判断一个对象是否是一个类的实例
# 【常用场景1】:判断对象的类型 py_int = 1 py_str = 'a' py_list = ['a','b'] py_dict = {'a':1,'b':2} isinstance(py_int, int) # 【常用场景2】:一个对象是否是一个类的实例 class C(): pass cc = C() isinstance(cc, C)
format:用于组装和格式化数据
# 【常用场景1】:装载字符串 py_str = "hello {0}".format("world") py_str = "hello {}{}".format("great","world!") # 【常用场景2】:装载列表 a = [1,2] py_list = '列表第一个: {0}; 列表第二个: {1}'.format(a[0],a[1]) py_list = '列表第一个: {0[0]}; 列表第二个: {0[1]}'.format(a) # 常用场景3:装载字典 student = {"name": "zhao", "age": 5} "My name is {} and my age is {}".format(student['name'],student['age']) "My name is {pig[name]} and my age is {pig[age]}".format(pig=student)
最后,一如既往,总结一下:
1 python的变量是python语法基础中的基础,重要中的重要
2 一定要上手实操一遍
另,我写的这些场景,如果你以后用不到,可以来打我;若有疑问,欢迎评论咨询~
本文来自博客园,作者:程序员小谭,转载请注明原文链接:https://www.cnblogs.com/testtalking/p/14092024.html
。