【Python基础】数字基础
文章目录
- 数字基础
- 1 数字类型
- 2 数字类型转化
- 2.1 数字计算优先级
- 2.2 类型强制转换
- 2.3 数字不可变
- 3 数字相关函数
- 3.1 基本函数
- 3.2 math模块
- 数学常数
- 三角函数
- 指数函数等
- 4 随机数模块
数字基础
1 数字类型
类型 | 说明 | 示例 |
---|---|---|
int | 整数 | 10 |
float | 浮点 | 3.14 |
bool | 布尔值 | True,False |
complex | 复数 | 1+0j |
基本计算:
print(3.14 * 10)
31.400000000000002
2 数字类型转化
2.1 数字计算优先级
优先级顺序:
complex > float > int >bool
通过案例来进行验证:
price = 99.99
num = 10
print("total sales:", price*num)
print(f"{num}+{True}:", num + True)
total sales: 999.9
10+True: 11
2.2 类型强制转换
函数 | 说明 |
---|---|
int([x], base=10) | 将对象转成整数,默认10进制 |
float(x=0, /) | 将对象转成浮点数 |
bool(x) | 将对象转成Bool值 |
complex(real=0, imag=0) | 创建复数 |
round(number, ndigits=None) | 指定浮点数小数点后位数 |
需求:
- 从键盘读取双11的总销售额与购物的总用户数,计算客单价;
- 要求结果保留小数点后1位;
gmv= input("输入销售总额:")
shoppers = input("总人数:")
float(gmv)/int(shoppers)
14.142857142857142
round(float(gmv)/int(shoppers), 2)
14.14
round(9.999, 2)
10.0
2.3 数字不可变
数字是一种不可改变的数据结构;
思考:经过下面的操作,a,b的值分别是什么?
a = 10
b = a
a = 11
id函数:查看对象的地址;
id(10),id(11),id(a),id(b)
(140717370872904, 140717370872936, 140717370872936, 140717370872904)
3 数字相关函数
3.1 基本函数
函数 | 说明 |
---|---|
pow(x, y, z=None, /) | x**y或者x**y%z |
abs(x, /) | x的绝对值 |
- 练习:计算1~10每个数的平方
for i in range(1, 11):
print(pow(i, 2), end=" ")
1 4 9 16 25 36 49 64 81 100
a = -1
abs(a)
1
3.2 math模块
math模块:数学相关函数
math模块需要导入,导入语法:
#导入模块
import 模块名称
#导入模块中的方法或者属性
from 模块名称 import xxx
import math
from math import pi
pi
3.141592653589793
math.sin(0.3)
0.29552020666133955
数学常数
函数, math. | 说明 |
---|---|
pi | 表示圆周率,3.141592653589793 |
e | 自然对数的底, 2.718281828459045 |
三角函数
函数, math. | 说明 |
---|---|
sin(x)/cos(x) | 返回的x弧度的正/余弦值 |
asin(x)/acos(x) | 返回x的反正/反余弦弧度值 |
tan(x) | 返回x弧度的正切值 |
atan(x) | 返回x的反正切弧度值 |
指数函数等
函数, math. | 说明 |
---|---|
factorial(x) | 计算阶乘,返回x! |
sqrt(x) | 返回x的平方根 |
floor(x) | 取最接近x的整数,返回整数<x |
log(x[, base]) | 以 Base 为底的 x 的对数 |
log10(x) | 以10为底的x的对数 |
log2(x) | 以2为底的x的对数 |
# 给定数字,计算其对应的阶乘
def func(n):
ret = 1
for i in range(1, n+1):
ret *= i
return ret
func(5)
120
# 将给定的整数倒序输出
def reverse_digit(num):
if num <10:
print(num)
else:
while num > 0:
print("num:", num)
tmp = num % 10
print(tmp, end="")
num //=10
reverse_digit(23456)
num: 23456
6num: 2345
5num: 234
4num: 23
3num: 2
2
4 随机数模块
- 导入模块
import random
- random相关方法
random.randint(a, b):返回[a,b]之间随机整数;
random.random():返回[0, 1)随机数;
random.uniform(a, b):返回[a,b]之间的实数;
random.seed(a=None, version=2):设置随机种子,如果每次设置值一样,产生随机数一样;
import random
# 产生0~10之间随机数
random.randint(0, 10)
4
# 产生0~1之间的随机数
random.random()
0.9562311732663106
# 随机种子,结果固定
random.seed(1)
random.randint(0, 10)
2
# 无随机种子,结果随机
random.randint(0, 10)
7