Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之数字类型(number)
Python 数字类型(number)用于存储数值。数据类型是不允许改变的,这就意味着如果改变number数据类型的值,将重新分配内存空间。
1. 一个简单的示例:
# 以下实例在变量赋值时数字类型对象将被创建
var1 = 1
var2 = 10 # 也可以额用del语句删除一些胡子类型对象的引用。
# del 语句的语法是:
del var1[,var2[,var3[....,varN]]]] del var
del var_a, var_b
2. Python支持四种不同的数值类型:
整型(int):通常被称为是整型或整数,是正或负数,不带小数点。
长整型(long integers):无限大小的整数,整数最后是一个大写或小写的L。
浮点型(floating point real values):浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 × 102 = 250)
复数(complex numbers):复数是由实数部分和虚数部分构成的,可以用a+bj,或者complex(a, b)表示复数的实部a和虚部b都是浮点型。
3. Python number 类型转换
函:int
语:int(x, base=2/8/10/16)
用:base默认为10进制算法,可以选择二进制、八进制、十六进制等)
# int
x = 4852666.12345
y = int(x)
print(x, y, sep="***")
# 输出结果:4852666.12345***4852666
6
x = "0b1001"
y = int(x, base=2) # 二进制算法
print(x, y, sep="***")
# 输出结果:0b1001***9
#
print(int(1.9)) # 将浮点型转换成整数,获取整数部分,向下取整
print(float(1)) # 将整数转换成为浮点型,向下加上小数位
# 输出结果:1.0
print(int("")) # 字符串如果是数字字符串的话可以转换效果同eval
# 输出结果:123 print(int("")) # 字符串如果是数字字符串的话可以转换效果同eval
# 输出结果:123
print(int("+123"))
# 输出结果:123
print(int("-123"))
# 输出结果:-123
# print(int("12+3+3")) # 加号减号,作为正负号才有意义
# 输出结果:错误!
函:float
语:float(x)
用:转换一个浮点型数值,默认为六位四舍五入的方式
# float
x = 4852666.123456789923456789
print(x)
# 输出结果:4852666.12345679
print(float("12.3")) # 字符串如果是数字字符串的话可以转换
# 输出结果:12.3
print(float(1)) # 将整数转换成为浮点型,向下加上小数位
# 输出结果:1.0
函:complex
语:complex(x)
用:创建一个复数
# complex
print(complex(12, 15)) # 创建一个复数
# 输出结果:
# (12+15j) 12位实数部分,15j为虚数部分
函:str
语:str(x)
用:将对象x转换为表字符串
# str
print(type(str(123))) # 将对象转换成为一个字符串
# 输出结果:
# <class 'str'>
函:repr
语:repr(x)
用:将对象x转换为表达式字符串
# repr
print(type(repr(123))) # 将对象转换为表达式字符串
# 输出结果:
# <class 'str'>
函:eval
语:eval(str)
用:1.用来计算再字符串中有效Python表达式,并返回一个对象;2.用来把字符串中的数据类型提取出来。
print(eval("12+3")) # 字符串内数字运算方式
# 输出结果:15 a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
b = eval(a)
print(b, type(b)) # 将字符串转换成列表
# 输出结果:[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]] <class 'list'> a = "{1: 'a', 2: 'b'}"
b = eval(a)
print(b, type(b)) # 将字符串转换成字典
# 输出结果:{1: 'a', 2: 'b'} <class 'dict'> a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
b = eval(a)
print(b, type(b)) # 将字符串转换成元组
# 输出结果:([1, 2], [3, 4], [5, 6], [7, 8], (9, 0)) <class 'tuple'>
函:tuple
语:tuple(s)
用:将序列s转换成一个元组
# tuple
print(tuple("123你好")) # 将字符串内的的元素按照单个方式转换成元组
# 输出结果:
# ('1', '2', '3', '你', '好')
函:list
语:list(s)
用:将序列s转换成一个列表
# list
print(list("123你好")) # 将字符串内的元素按照单个方式转换成列表
# 输出结果:
# ['1', '2', '3', '你', '好']
函:ord 和 char
语:ord(x)、char(x)
用:对照ASCII码表,获得一个字符的整数值;由整数值获得一个字符
# char
print(chr(80)) # 将一个整数转换为一个字符,对应ASCII码表。
# 输出结果:P # ord
print(ord("C")) # 将一个字符转换成它的整数值,对应ASCII码表。
# 输出结果:67
函:oct、hex
语:oct(x)、hex(x)
用:将一个整数转换为一个八进制字符串;将一个整数转换为一个十六进制字符串
# hex
print(hex(123456)) # 将一个整数转换为一个十六进制字符串
# 输出结果:0x1e240 # oct
print(oct(123456)) # 将一个整数转换为一个八进制字符串
# 输出结果:0o361100
3. 数字算术运算和赋值运算
3.1 数学算术运算
数学算出运算共有7种,分别为 +、-、*、/(加、减、乘、除)和 %、**、//(取模余数、幂运算、取整除赋值运算符,整除的结果)
# 数字算术运算
# + - * /
a, b, c = 20, 10, 0
c = a + b
print("a + b = %.2f" % c) # 输出结果:30.00 c = a - b
print("a - b = %.2f" % c) # 输出结果:10.00 c = a * b
print("a * b = %.2f" % c) # 输出结果:200.00 c = a / b
print("a / b = %.2f" % c) # 输出结果:2.00 # % ** //
c = a % b
print("a % b = ", c) # 取模(取余数)# 输出结果:0 c = a ** b
print("a ** b = %d" % c) # 幂运算 # 输出结果:10240000000000 c = a // b
print("a // b = %d" % c) # 取整除赋值运算符,整除的结果。# 输出结果:2
3.2 数字赋值运算
数学的赋值运算拆分为运算+赋值=结果。两步的运算结果合并成为一步。=、+=、-=、*=、/=(等于、加等于、减等于、乘等于、除等于)和%=、**=、//=(取余等于、幂等于、取整除等于)。
举个例子:a = 100、b=50、a += b 可以拆分为(第一步:a + b = 150;第二步:赋值150赋值给a,a=150),最终变为a=150 b=50
这里特别说明的是这种数字赋值表达式方式,在后面的循环体当中运用非常广泛。
# 数字赋值运算(表达内容同上)
# = += -= *= /=
d, e, f = 20, 10, 0
e += d
print("e += d : ", e) # 输出结果:e += d : 30 e += d
print("e -= d : ", e) # 输出结果:e -= d : 50 e *= d
print("e *= d : ", e) # 输出结果:e *= d : 1000 e /= d
print("e /= d : ", e) # 输出结果:e /= d : 50.0 # %= **= //=
d %= e
print("d %= e : ", d) # 输出结果:d %= e : 20.0 d **= e
print("d **= e : ", d) # 输出结果:d **= e : 1.125899906842624e+65 d //= e
print("d //= e : ", d) # 输出结果:d //= e : 2.251799813685248e+63
4. 常用数学函数
Python除了普通的加减乘除运算,还可以运算一些像三角函数,四舍五入等运算方式,有些需要调用出数学库,方式为import math。对于这些常用的数学函数列出如下:
函:abs和fabs
语:abs(x)和fabs(x)
用:取绝对值
import math
# abs 和 math.fabs
# 作用:取绝对值
print(abs(-3.1412926))
print(math.fabs(-10)) # 这个与abs不同是如果是整数返回一个带一位小数的整数
# 输出结果:
# 3.1412926
# 10.0
函:round、ceil、floor
语:round(x,n)、ceil(x)、floor(x)
用:四舍五入n为保留几位小数、向上取整、向下取整
# round、ceil、floor
# 作用:四舍五入、向上取整、向下取整
print(round(3.1415926, 4)) # 保留四位小数,如果舍位为0,返回四舍五入的整数
# 输出结果:3.1416
print(math.ceil(3.11415926)) # 向上取整
# 输出结果:4
print(math.floor(3.1415926)) # 向下取整
# 输出结果:3
符:>、==、<、>=、<=
用:大于、等于、小于、大于等于、小于等于,来逻辑比较两个值。返回为真假(True or False)
# > == < <= >=
# 作用:比较两个数字的大小关系,返回为真假
print(15 > 10) # 输出结果:True
print(15 < 10) # 输出结果:False
print(15 == 10) # 输出结果:False
print(15 >= 10) # 输出结果:True
print(15 <= 10) # 输出结果:False
函:exp
语:exp(x)
用:取指数
# exp
# 作用:取指数
print(math.exp(50))
# 输出结果:5.184705528587072e+21
函:log、log10、log2
语:log(x,n)、log10(x)、log2(x)
用:计算以n为底的对数(默认为2.71...)、计算以十为底的对数、计算以二为底的对数
# log、log10、log2
# 作用:对数计算方式
print(math.log(10, 10)) # 以几为底的对数,默认为2.718281828459045为底
# 输出结果:1.0
print(math.log10(10)) # 以10为底的log计算
# 输出结果:1.0
print(math.log2(10)) # 以2位底的log计算
# 输出结果:3.321928094887362
函:max、min
语:max(n1,n2,n3,....)、min(n1,n2,n3,....)
用:求一组数中的最大值;求一组书中的最小值
# max、min
# 作用:大小值比较,返回为数字或者字符
print(max(12, 13, 14)) # 输出结果:14
print(min(12, 13, 14)) # 输出结果:12
函:pow
语:pow(base,n)
用:计算以base为底的n次方
# pow
# 作用:幂运算 等于 **
print(math.pow(10, 2)) # 输出结果:100.0
函:sqrt
语:sqrt(x)
用:对数值x进行开方运算
# sqrt
# 作用:开方运算
print(math.sqrt(4)) # 输出结果:2.0
函:modf
语:modf(x)
用:返回x值的整数部分和小数部分,两部分数值符号与值相同,整数部分以浮点型表示
# modf
# 作用:返回值的整数部分与小数部分,两部分数值符号与值相同,整数部分以浮点型表示
print(math.modf(10.12)) # 显示为小数部分+整数部分
# 输出结果:(0.11999999999999922, 10.0)
print(math.modf(10.10)) # 显示为小数部分+整数部分
# 输出结果:(0.09999999999999964, 10.0)
函:常用的三角函数:
acos(x) 返回x的反余弦弧度值
asin(x) 返回x的反正弦弧度值
atan(x) 返回x的反正切弧度值
atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值
cos(x) 返回x的弧度的余弦值
hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)
sin(x) 返回的x弧度的正弦值
tan(x) 返回x弧度的正切值
degrees(x) 将弧度转换为角度,如degrees(math.pi/2)
radians(x) 将角度转换为弧度
# 常用的三角函数 #
# acos(x) 返回x的反余弦弧度值
print(math.acos(0.5)) # 输出结果:1.0471975511965979
# asin(x) 返回x的反正弦弧度值
print(math.asin(0.5)) # 输出结果:0.5235987755982989
# atan(x) 返回x的反正切弧度值
print(math.atan(0.5)) # 输出结果:0.4636476090008061
# atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值
print(math.atan2(0.5, 0.5)) # 输出结果:0.7853981633974483
# cos(x) 返回x的弧度的余弦值
print(math.cos(0.5)) # 输出结果:0.8775825618903728
# hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)
print(math.hypot(0.5, 0.5)) # 输出结果:0.7071067811865476
# sin(x) 返回的x弧度的正弦值
print(math.sin(0.5)) # 输出结果:0.479425538604203
# tan(x) 返回x弧度的正切值
print(math.tan(0.5)) # 输出结果:0.5463024898437905
# degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
print(math.degrees(math.pi/2)) # 输出结果:90.0
# radians(x) 将角度转换为弧度
print(math.radians(90)) # 输出结果:1.5707963267948966
函:pi、e
语:
用:这是两个数学常量分布别指的:π和常数e
# 两个数学常量 #
print(math.pi) # 输出结果:3.141592653589793
print(math.e) # 输出结果:2.718281828459045
5. 常用的数学随机数函数
在某些领域中(比如卡尔曼滤波等)数学随机数运用非常广泛,严格意义来讲,python提供的随机数并不是绝对意义的随机数,但是也经常被使用。同样计算这些随机数也需要条用python的随机数库,用import random的形式调用出来。
函:choice
语:choice()
用:从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
函:range
语:range(self, start [,end] [,step])
用:这个特别要增加一个函数,这个函数和后面的list列表数据类型最大的区别是range函数是用来创建算术级序列的通用函数,类似于C语言中的数字,有且只能存放数值类型变量。其中start为其实值,end为结束值,step为步长,单元素或者默认状态下步长为1。
import random
# choice
# 作用:从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数
print(random.choice([0, 1, 2, 3, 4, 7, 8, 9, 100])) # 从一个数组里面随机拿出来一个数
# 输出结果:0(随机结果) print(random.choice(["你好", "fucnk", "thomas"])) # 从一个数组里面随机拿出来一个字符串
# 输出结果:你好(随机结果) print(random.choice(range(5))) # range(5) = [0, 1, 2, 3, 4]
# 输出结果:0(随机结果) print(random.choice(range(10)) + 1) # 生成1到10之间的随机数
# 输出结果:8(随机结果)
函:randrange
语:randrange([start,] ,stop[, step])
用:从一个结合范围当中按照某个步长来随机挑选,按照指定技术递增集合中选取一个随机数,这种方式类似于上面的choice(range())的形式。
# random.randrange([start,] ,stop[, step])
# 作用:从一个结合范围当中按照某个步长来随机挑选,按照指定技术递增集合中选取一个随机数
# start--指定范围的开始至,包含范围内
# stop--是定范围的结束,不包含在范围内
# step--递增基数,默认是1
print(random.randrange(1, 100, 5)) # 从0-99选取一个随机数,步长是5
print(random.randrange(100)) # 从0-99选取一个随机数,步长是1
函:random.random
语:random.random()
用:随机生成[0, 1)之间的小数,含0,不包括1
# random.random
# 作用:随机小数[0,1)
print(random.random()) # 15位的随机小数0-1之间
函:normalvariate
语:normalvariate(mu, sigma)
用:mu为均值,sigma为方差;生成正态分布随机数。
# normalvariate
# 作用生成正态分布随机数,其中第一个为均值,第二个为方差
print(random.normalvariate(0, 1))
函:shuffle
语:shuffle(series)
用:将序列的所有元素进行随机排序
# shuffle
# 作用:将序列的所有元素随机排序
list = [1, 2, 3, 4, 5, 6]
random.shuffle(list)
print(list)
函:uniform
语:uniform([start] [,stop])
用:随机生成一个实数
# uniform
# 作用:随机生成一个实数
print(random.uniform(10, 20 )) # 范围[10, 20]
函:seed
语:seed(n)
用:用种子的方法改变随机数生成器的种子,可以在条用其他随机函数之前调用此函数。这个方式有个特点规定好种子后数值不再改变了。
# seed
# 作用:seed()方法改变随机数生成器的种子,可以在调用其他随机模块函数之前条用次函数
random.seed(10)
print("Random number with seed 10 :", random.random()) # 生成同一个随机数
# 输出结果:0.5714025946899135
6. 其他补遗
还有一种交互式赋值方式
num1 = 10
print(id(num1)) # 打印num1的地址
num2, num3 = 10, 20
print(num1, num2) # 交互式赋值方式
num4 = num5 = num6 = 30
print(num4, num5, num6) # 连续赋值的方式
print(type(num4)) # 打印属于那种类型变量
Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之数字类型(number)的更多相关文章
- Python笔记_第一篇_面向过程_第一部分_2.内存详解
Python的很多教材中并没有讲内存方面的知识,但是内存的知识非常重要,对于计算机工作原理和方便理解编程语言是非常重要的,尤其是小白,因此需要把这一方面加上,能够更加深入的理解编程语言.这里引用了C语 ...
- Python笔记_第一篇_面向过程_第一部分_1.Python环境的设置(含虚拟机)
*Python环境的设置 Python的环境设置也就是所需工作平台的软件搭建.常用的搭建平台IOS系统+Linux系统和Windows+Linux系统的搭建.这里主要说明的是Windows+Linux ...
- Python笔记_第一篇_面向过程_第一部分_6.条件控制语句(if)
Python正如其他语言一样存在两种常用的逻辑判断体(也叫结构化程序设计).所谓逻辑判断体是通过你想要完成的编程思路,通过在逻辑判断体中的相互判断和作用得到你想要的结果.逻辑判断体也叫控制语句,Pyt ...
- Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之字符串类型(string)
关于Python的字符串处理也如其他语言一样属于重点中的重点,主要是牵扯到的函数和内容较为多和乱一些.关于什么是字符串,Python中的定义是:以单引号或者双引号括起来的任意文本. 1. 字符串的 ...
- Python笔记_第二篇_面向过程_第二部分_2.路径、栈和队列、内存修改
这一部分分三个主题进行讲解,主要为后面的模块.包.第三方库的概念补充一些相关的内容. 1. 路径(Path): 相对路径和绝对路径. 举例1:我们先导入一个os库(模块)来观察一下路径 import ...
- Python成长之路第一篇(3)_初识字典
经过上章的学习我们已经了解到了列表可以通过索引来获取对应的值,在本章我们将学到通过名字来索引数据,这种结构的类型称之为映射(maooing),在Python中字典是唯一内建的映射类型,其中的值我们称之 ...
- python笔记带你走向测试开发之路-第一篇(数据类型之数字,序列)
数字 数字的类型 数字是 Python中比较常用的数据类型,数字有可以分为: 整型 int如 1,2,3 浮点型 float如 2.1,3.5 长整型 long如 3L,需要注意的是 Python2. ...
- 四、java基础-面向过程_对象_类中可出现的因素
1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...
- python自动化开发-[第五天]-面向过程、模块、包
今日概要: 1.内置模块 2.协程函数 3.递归 4.面向过程编程与函数编程 5.模块 6.包 7.re正则 一.内置模块 1.匿名函数lambda 定义:匿名函数通常是创建了可以被调用的函数,它返回 ...
随机推荐
- 二十二、SAP中创建一个内表,并添加内容循环输出显示
一.直接上代码 二.输出如下
- HDU 4902 Nice boat 多校4 线段树
给定n个数 第一个操作和普通,区间覆盖性的,把l-r区间的所有值改成固定的val 第二个操作是重点,输入l r x 把l-r区间的所有大于x的数,变成gcd(a[i],x) a[i]即指满足条件的序列 ...
- 操作系统类型&操作系统结构&现代操作系统基本特征
五大类型操作系统 (1). 批处理操作系统 用户脱机使用计算机 用户提交作业之后直到获得结果之前就不再和计算机打交道. 作业提交的方式可以是直接交给计算中心的管理操作员,也可以是通过远程通讯线路提交. ...
- express连接数据库 读取表
connection 连接数据库 connection.query 查询表 1.依赖 const mysql = require('mysql'); 连接数据库代码 var connecti ...
- c++程序—字符串
C风格字符串:char 变量名[ ]="字符串值 " int main() { char str[] = "hello world!"; cout <&l ...
- 【剑指Offer】面试题22. 链表中倒数第k个节点
题目 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1.2.3.4.5.6. ...
- Win7微信DLL劫持反弹SHELL(10.9 第十七天)
(该文参考自网络其他人资料,仅为学习,不得用于非法用途) 准备的工具:kali虚拟机 W7虚拟机 微信 ProcessExplorer the-backdoor-factory-master 打开微信 ...
- tx2系统备份与恢复
https://blog.csdn.net/ycy_dy/article/details/80493392 https://blog.csdn.net/piaopiaopiaopiaopiao/art ...
- 18 —— node 热部署工具 — supervisor /nodemon 。
1,全局安装: npm install -g supervisor 2,使用: —————————————————————————————— nodemon 和 supervisor 流程一致.
- [Mathematics][Fundamentals of Complex Analysis][Small Trick] The Trick on drawing the picture of sin(z), for z in Complex Plane
Exercises 3.2 21. (a). For $\omega = sinz$, what is the image of the semi-infinite strip $S_1 = \{x+ ...