本文掌握Python中的几种数值类型,以及算术运算、位运算、数值转换,再学习一个测试中常用来产生随机数的模块。

构建测试知识体系,欢迎关注

Python支持的数值类型有整型int、布尔型bool、浮点型float、Decimal。

type(100)  # <class 'int'>type(1.0)  # <class 'float'>type(True)  # <class 'bool'>type(False)  # <class 'bool'>

这里要提一下,布尔型是只有两个值的整数。True对应1,False对应0。对于布尔型要从以下方面理解:

  • 有两个值True和False

  • 对于值为零的任何数字或者空集(空列表[]、空元组()、空集合{}、空字典{}),他们的布尔值都是False

01

算术运算

  • 加法+

  • 减法-

  • 乘法*

  • 除法/

  • 取余%

  • 幂运算**或pow

  • 取商和余数divmod

  • 四舍五入round

  • 绝对值abs

>>> 5+27>>> 5-32>>> 5*210>>> 5/22.5>>> 5%21>>> 5**225>>> pow(5,2)25>>> divmod(5,2)(2, 1)>>> round(1.314, 2)  # 保留两位小数,第三位四舍五入1.31>>> round(2.5)  # 值刚好等于两个整数中间时,得到举例最近的偶数2>>> round(1.5)  # 值刚好等于两个整数中间时,得到举例最近的偶数2>>> round(2.6)3>>> abs(-0.5)0.5

02

位运算

将数值转成二进制后,按位操作。

  • 按位取反~

  • 按位与&

  • 按位或|

  • 按位异或^

  • 左移<<

  • 右移>>

>>> 30 & 4512>>> 30 | 4563>>> 30 ^ 4551>>> ~30-31>>> 3<<212>>> 8>>2

03

数制转换

  • bin(),将十进制转换为二进制

  • oct(),将十进制转换为八进制

  • hex(),将十进制转换为十六进制

>>> bin(10)  # '0b1010'>>> oct(9)  # '0o11'>>> hex(15)  # '0xf'

04

比较运算

  • 大于>

  • 小于<

  • 等于==

  • 大于等于>=

  • 小于等于<=

  • 不等于!=

>>> 5>3  # True>>> 5<3  # False>>> 5==3 # False>>> 5>=3 # True>>> 5!=3 # True>>> 5<=3 # False

05

decimal模块

普通的float型数据在运算时,是有误差的,python默认的是17位小数的精度,再长后面的数据就不准了。如果不能接受误差,可以使用decimal模块解决精确计算问题。

a = 3b = 1c = b/aprint(c)  # 0.3333333333333333d = "%.30f" % (1/3)print(d)  # 0.333333333333333314829616256247e = Decimal(1)/Decimal(3)print(e)   # 0.3333333333333333333333333333 ,默认28位,可调

06

random模块

在测试工作中,构造随机数类型的测试数据时,经常用使用random这个模块。它能够产生随机整数、小数,还能随即从列表和元组或者字符串中提取随机元素。

import randomimport stringprint(random.randint(1, 10))  # 产生 1 到 10 的一个整数型随机数print(random.random())  # 产生 0 到 1 之间的随机浮点数print(random.uniform(1.1, 5.4))  # 产生  1.1 到 5.4 之间的随机浮点数,区间可以不是整数print(random.choice('tomorrow'))  # 从序列中随机选取一个元素print(random.choice(['剪刀', '石头', '布']))print(random.randrange(1, 100, 2))  # 生成从1到100的间隔为2的随机整数print(random.sample('zyxwvutsrqponmlkjihgfedcba', 5))  # 生成5个字符组成的列表print(''.join(random.sample(string.ascii_letters + string.digits, 8)))  # 从a-zA-Z0-9生成指定数量的随机字符a = [1, 3, 5, 6, 7] random.shuffle(a)   # 将序列a中的元素顺序打乱print(a)

说到随机数作为测试数据,Python中还有一个非常好用的产生随机数的第三方包Faker(https://pypi.org/project/Faker/)。安装方法是:

pip install Faker

它的功能特别强大,能够产生的随机数类型非常丰富,举几个例子:

from faker import Faker# Faker.seed(4321)  # 随机数种子fake = Faker('zh_CN')print(fake.name())print(fake.address())print(fake.city())print(fake.postcode())print(fake.company())print(fake.email())print(fake.hostname())print(fake.ipv4())

从名字可以看出产生的随机数的类型。

如果想要每次生成的随机数是固定的。可以提供一个随机数种子,这样相同的方法,总会得到相同的随机结果。

c++ 随机字符串_连载|想用Python做自动化测试?了解数值计算和随机数生成神器...相关推荐

  1. python 递归函数_连载|想用Python做自动化测试?递归函数

    " 递归函数就是函数内部调用自身,可以使代码逻辑更加易懂.但是递归也有坑,需要避免." 13.1 概念 在函数内部,可以调用其他函数.如果一个函数在内部调用自身,这个函数就是递归函 ...

  2. append函数_连载|想用Python做自动化测试?函数的参数传递机制及变量作用域

    " 这一节有点难.看不懂没关系.继续往后学,回头再来看." 10.6 函数参数传递的机制 10.6.1 值传递与引用传递 编程语言的参数传递机制通常有两种: 值传递 拷贝参数的值, ...

  3. python decimal_连载|想用Python做自动化测试?了解数值计算和随机数生成神器

    " 本文掌握Python中的几种数值类型,以及算术运算.位运算.数值转换,再学习一个测试中常用来产生随机数的模块." 构建测试知识体系,欢迎关注 Python支持的数值类型有整型i ...

  4. 想用Python做自动化测试?Python反射机制的应用

    通常,我们操作对象的属性或者方法时,是通过点"."操作符进行的.例如下面的代码: class Person:type = "mammal"def __init_ ...

  5. 如何用 Python 做自动化测试

    本文来自作者 Vant 在 GitChat 上分享 「如何用 Python 做自动化测试」 编辑 | 哈比 一.Selenium 环境部署 1. window 环境部署 1.1 当前环境 Win10 ...

  6. c int转字符串_【C++实现python字符串函数库】字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  7. 分割字符串_[话俾你知]Python使用正则处理字符串技巧(分割、替换)

    当你遇见了一个问题需要使用正则来处理,这个时候你就有了两个问题. 我主业是做图像处理,自然语言处理接触不多,正则表达式的研究并不深入,本文只讲述一些小技巧,如果你对正则表达式比较感兴趣,可以去看看有本 ...

  8. python生活中哪些运用_【想把python运用在实际生活中?那么python查询价格方法可以帮助你】- 环球网校...

    [摘要]通过本次课程可以让python学员了解一下python查询价格方法,对代码编程有个感性的认知.也好让大家能够理性选择,不要盲目跟从,选择适合自己当前阶段的学习内容,循序渐进,以兴趣自我探索为向 ...

  9. python可以给你干什么-你最想用python做什么?python到底能用来做什么?

    我们知道python的应用前景很广阔,似乎哪个领域他都可以涉足,但是python真的在哪里都得心应手吗?我们今天就来看看这个问题: 如果你想学Python,或者你刚开始学习Python,那么你可能会问 ...

最新文章

  1. Python:CrawlSpiders
  2. “智源论坛Live”报名 | 清华大学高天宇:实体关系抽取的现状和未来
  3. 迁移数据文件到ASM【转】
  4. Mac卸载mysql并安装mysql升级到8.0.13版本
  5. 【c++】24.std::function和std::bind详解
  6. Objective-C中@property的所有属性详解
  7. 日期时间选择器-jeDate日期控件
  8. [设计模式] ------ 对比总结:简单工厂模式、工厂方法模式、抽象工厂模式
  9. 这是可用于下一个项目的React Native工具列表
  10. java线程wait()使一个线程一直运行,一直提供服务
  11. idea报“Usage of API documented as @since 1.7”这一问题的解决方法
  12. 处理quartz 异常 Couldn‘t retrieve trigger: No record found for selection of Trigger with key:
  13. shell循环读文件 Linux脚本读文件
  14. struct (5.31)
  15. App山寨疯狂 爱加密Apk加密平台防破解
  16. liunx 操作系统的区别和之间的关系
  17. 苹果手机使用技巧汇总,手把手教你如何快速使用苹果手机
  18. Maven基础-认识Maven
  19. Aquaculture Equipment 水产养殖设备谷歌Google搜索量和海外市场竞争度分析
  20. 程序员的小幽默:让你笑到肚子痛的搞笑动图

热门文章

  1. 学会444句话 英语口语不用愁
  2. 【多传感器融合】激光雷达与相机前融合
  3. IPX:互联网分组交换协议--网络大典
  4. 数字孪生教学楼3d可视化系统功能介绍
  5. html无序列表项目符号移动,关于html:我需要一个没有任何项目符号的无序列表...
  6. 大数据用户画像实战之业务数据调研及ETL
  7. js将blob转换为文本
  8. java abc输出bca_面试题24(写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab c...
  9. 零打碎敲学Android(三)—俄罗斯,你为什么是方块的
  10. 第7期-通过潇湘书院爬取小说