python极简教程01:基础变量
测试奇谭,BUG不见。
其实很久之前,就有身边的同事或者网友让我分享一些关于python编程语言的教程,他们同大多数自学编程语言的人一样,无外乎遇到以下这些问题:
- 网络上的资料过多且良莠不全,不知道如何分辨;
- “冗余”知识太多,初学不知如何下手;
- 既想掌握一门编程语言,又不想花费过多时间。
作为半路出家的非科班测试人,我在求知路上,同样遇到过这些问题,走过不少弯路,但所幸我战胜了它!
所以,我特别爱讲一句话:办法总比问题多。
当你看到这里时,我不想给你灌更多的鸡汤,简言之:学会python,真的很有用!
这个有用,并不是指学会python,你便能做自动化测试、能拿到更高的工资、能更好的就业等等,而是你要理解到python对于你工作方式的改变,并认识编程语言只是一种工具。
就好比我可以用文本对比软件,取代人工逐字比对——前者大大提升了你的工作效率。
python亦如此,它能显著的提升你的工作效率,也能改进你工作的思维方式。
这种隐性的、思维性技能的升级,才是对你最大的帮助,哪怕你以后不再继续从事测试职业。
希望这些“废话”对你有用。
接下来谈正题,我就最近两月给组内测试做培训的内容,给大家分享一套极简的、快速掌握python的教程。
先说说教程目的:你能依葫芦画瓢,上手可用。
再说说教程内容:大部分是我平时编码中用得比较多的场景,解决你不知道学什么的烦恼,避免初学时摄入过多“冗余”知识。
这一场,主讲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'} # 字典
整型和浮点型,就是整数和小数,学过数学的都清楚,没什么说的,我从字符串开始说起。
字符串
【常用场景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(其实无伤大雅)
列表
列表的索引 重点必须掌握!!!
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中没有的
元组
如何理解:可以将元组当成不可编辑的list(一般很少用到该类型)
('a','b','c','d')
字典
如何理解: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)
拓展
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)
一如既往,做个总结
01 python的变量是python语法基础中的基础,重要中的重要;
02 一定要上手实操一遍。
python极简教程01:基础变量的更多相关文章
- Python 极简教程(八)字符串 str
由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...
- python极简教程04:进程和线程
测试奇谭,BUG不见. 大家好,我是谭叔. 这一场,主讲python的进程和线程. 目的:掌握初学必须的进程和线程知识. 进程和线程的区别和联系 终于开始加深难度,来到进程和线程的知识点~ 单就这两个 ...
- Python 极简教程(四)变量与常量
变量和常量 在 Python 中没有 常量 与 变量 之分.只有约定成俗的做法: 全大写字母的名称即为 常量: PI = 3.1415926 全小写字母的名称为 变量: name = 'nemo' 变 ...
- python极简教程08:对象的方法
测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...
- python极简教程05:生成器和匿名函数
测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...
- python极简教程07:封装、多态和继承
测试奇谭,BUG不见. 这一场主讲python的面向对象部分--封装.多态和继承. 目的:掌握Python面向对象的三个核心概念. 封装 01 什么是封装? 封装的目的是,保护隐私.通俗的讲:不想让别 ...
- Python 极简教程(一)前言
现在 Python 用处很多,学的人也很多,其流行程度自不必说.但是很多人学 Python 的时候都遇到过问题,特别对于非计算机专业毕业的人来说. 现在的教程非常多,但是绝大部分对于初学者都不够友好. ...
- Python 极简教程(三)数据类型
每种语言都有各种数据类型.这就像在现实生活中,我们计数的时候需要用到数字,在表述金额.重量.距离等需要精确计数时用到小数,在日常交谈中要用文字,等等.在计算机语言中,为了表述不同的情况,也需要用到各种 ...
- Python 极简教程(二)编码工具
Python 的编码工具很多.目前最流行的是 pycharm,关于 pycharm 的安装使用请参考 PyCharm安装使用教程. 而学习过程中,我觉得最好用的,还是 Python 自带的练习工具 I ...
随机推荐
- JavaScript 链表
------------恢复内容开始------------ 背景 数组并不总是组织数据的最佳数据结构,原因如下.在很多编程语言中,数组的长度是固定的,所以当数组已被数据填满时,再要加入新的元素就会非 ...
- Vue相关,vue父子组件生命周期执行顺序。
一.实例代码 父组件: <template> <div id="parent"> <child></child> </div& ...
- 08-认证(Authorization)
这又是一个非常实用的功能,对我们做接口测试来说,经常要处理登录认证的情况 .如果不用这个Authorization其实也能解决认证的问题,无非就是把要认证的数据按照要求在指定位置传入参数即可.比如我们 ...
- Docker 安装 Oracle12c
为选定需要pull到系统中的数据库镜像 # docker pull sath89/oracle-12c --------sath89/oracle-12c为选定需要pull到系统中的数据库镜像 doc ...
- 【C/C++】日期问题/算法笔记/入门模拟
最近把算法竞赛入门经典的前半部分看完了,开始看算法笔记入门算法. 看了前半部分的例题,很多是算法竞赛入门经典中出现过的,但是感觉这本书写的更适合初学者,而且真的很像考试笔记,通俗易懂. //日期问题 ...
- 匿名内部类与lamda表达式
1.为什么要使用lamda表达式 从JDK1.8开始为了简化使用者进行代码开发,专门提供有Lambda表达式的支持,利用此操作形式可以实现函数式的编程,对于函数式编程比较著名的语言:haskell,S ...
- CF190C STL 题解
* 题意 :给出只会出现 pair 和 int 的字符串 , 要求按照给出 pair 和 int 的顺序 , 添加 ' < ' , ' > ' , ' , ' 这三个符号 , ...
- windows下安装linux虚拟机(wsl2),并安装docker。
一.windows terminal(重要工具,但也可以不装) 这是微软官方推荐的终端工具,类似mac的iterm2,可同时开启多个终端,最开始默认有power shall,cmd,可下载gsudo集 ...
- python f-strings !表达式
近期看一些框架的文档时发现, python的f-strings有f"{xxx!r}"的写法, 就官网看了一波文档, 特此记录一下, 顺便完善一下f-strings的使用 f-str ...
- 车载以太网第二弹|测试之实锤-TC8 TCP/IP协议一致性测试实践
前言 车载以太网测试实践系列,我们还分享了PMA测试实践.IOP测试实践 .本期给大家介绍的是TC8中的TCP/IP协议一致性测试(以下简称TCP/IP测试). TCP/IP测试-设备环境组成 TTw ...