python3 - 6 Python数据类型-数字 0313更新

mac:10.15.3
pycharm: 2019.3
python:3.7
参考教材1https://www.runoob.com/python/python-strings.html
参考教材2https://www.cnblogs.com/skings/p/10217229.html

print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
"""
Python Number(数字)
Python Number 数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。

"""
print("Python Number 类型转换")

x = 9472
y = "a"
s = (1, 2, 3, 4, 5)

print("整数类型", int(x))  # 将x转换为一个整数
# long(x [,base ])  # 将x转换为一个长整数, 这个类型在python3中已经取消了
print("浮点类型", float(x))  # 将x转换到一个浮点数
print("复数类型", complex(real=2, imag=3))  # 创建一个复数
print("字符串类型", str(x))  # 将对象 x 转换为字符串
print("ord函数", ord(y))  # ord()函数是chr()或unichr()的配对函数,以字符作为参数,返回ASCII数值,或者Unicode数值。
print("repr函数", repr(x))  # repr() 的输出追求明确性,除了对象内容,还需要展示出对象的数据类型信息,# 适合开发和调试阶段使用。
print("eval函数", eval(str(x)))  # 用来计算传入字符串表达式的结果,并返回一个对象
print("元组类型", tuple(s))  # 将序列 s 转换为一个元组
print("列表类型", list(s))  # 将序列 s 转换为一个列表
# unichr(x)  # 将一个整数转换为Unicode字符, 这个类型在python3中升级了
print("chr函数", chr(x))  # Python3中的chr()不仅仅支持Ascii的转换,直接支持了更为适用的Unicode转换。
print("16进制类型", hex(x))  # 将一个整数转换为一个十六进制字符串
print("8进制类型", oct(x))  # 将一个整数转换为一个八进制字符串
print("2进制类型", bin(x))  # 将一个整数转换为一个二进制字符串


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------

"""
Python math 模块、cmath 模块
Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。

Python math 模块提供了许多对浮点数的数学运算函数。

Python cmath 模块包含了一些用于复数运算的函数。

cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。
"""
print("math 模块")

import math
import cmath

print(dir(math))
"""
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 
'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 
'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 
'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 
'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 
'tanh', 'tau', 'trunc']
"""

print(dir(cmath))
"""
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 
'asin', 'asinh', 'atan', 'atanh', 'cos', 'cosh', 'e', 'exp', 'inf', 'infj', 'isclose', 'isfinite', 
'isinf', 'isnan', 'log', 'log10', 'nan', 'nanj', 'phase', 'pi', 'polar', 'rect', 'sin', 'sinh', 
'sqrt', 'tan', 'tanh', 'tau']
"""


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("abs函数")

a_abs = abs(-10 - 10)
print(a_abs)
a_abs = abs(-10 + -10)
print(a_abs)
a_abs = abs(-10.5 + -10.1)
print(a_abs)
a_abs = abs(-1 + -1j)
print(a_abs)


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("fabs方法")  # fabs()函数只对浮点型跟整型数值有效。 abs() 还可以运用在复数中。

from math import fabs

print("fabs(-10 + -10) 等于 ", fabs(-10 + -10))
print("fabs(-10 + -10) 等于 ", fabs(-10.5 + -10.1))
# print("fabs(-10 + -10) 等于 ", fabs(-10 + -10j))  # 复数不能计算,所以感觉没有abs好

print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("cell方法")

a_ceil = math.ceil(3.5)  # 由于是import math所以需要math.ceil,从这个题之后会用form math import ceil的方法
print(a_ceil)
a_ceil = math.ceil(3.1)  # 这个方法会上入整数,也就是3.0001也会进位到4
print(a_ceil)


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("floor方法")

from math import floor

print("floor(2.1),", floor(2.1))
print("floor(2.1),", floor(2.9))

print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("cmp函数")
print("python3取消了cmp函数,因为已经可以直接比大小了")

a_cmp, b_cmp = 1, 2
print(a_cmp == b_cmp)
a_cmp, b_cmp = [1, 2, 3], [1, 2, 4]
print(a_cmp < b_cmp)
a_cmp, b_cmp = (1, 2, 3), (1, 2, 4)
print(a_cmp > b_cmp)


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("exp方法")

from math import exp

a_exp = exp(10)
print("exp(10) 等于 ", a_exp)
a_exp = exp(5)
print("exp(5) 等于", a_exp)
a_exp = exp(2)
print("exp(2) 等于", a_exp)
a_exp = exp(1)
print("exp(1) 等于", a_exp)  # 这就是e的一次方,也就是e的值


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("log方法, log10方法")

from math import log
from cmath import log as clog
from math import log10
from cmath import log10 as clog10

print("log(1000, 10) 等于 ", log(1000, 10))  # 这个玩意智商感人啊~,上这么多年学我才知道10的2.9999次方等于1000
print("clog(1000, 10) 等于 ", clog(1000, 10))  # 我以为cmath能好点呢,原来都一样.

print("clog(1000, 10) 等于 ", log10(1000))  # log 以10为底1000的对数,也就是10的多少次方等于1000
print("clog(1000, 10) 等于 ", clog10(1000))


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("max函数")

print("max(100, 10, 1000) 是 ", max(100, 10, 1000))  # 最大值,这只是个str
# print("max[100, 10, 1000] 是 ", max[100, 10, 1000])  # 不能是列表


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("min函数")

print("min(100, 10, 1000) 是 ", min(100, 10, 1000))  # 最小值


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("mod方法")

from math import modf

print("modf(12.34) 等于 ", modf(12.34))  # 我就日记了!


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("pow方法")

from math import pow

print("pow(2, 4 等于", pow(2, 4))  # 这个函数就计算2的4次方,得数为啥是float?


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("sqrt方法")

from math import sqrt

print("sqrt(2) 等于", sqrt(2))
print("sqrt(4) 等于", sqrt(4))


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("round函数")

print("round(3.1415926) 等于 ", round(3.1415926))  # 四舍五入为整数
print("round(3.1415926, [2]) 等于 ", round(3.1415926, 2))  # 保留两位小数


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
"""
Python随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
"""
print("choice方法")

from random import choice

print("choice(10) 的随机数是 ", choice(range(1, 10)))  # 这是调取1到10的随机数

a_choice = [1, 3, 5, 7, 9]
print("choice(a_choice) 的随机数是 ", choice(a_choice))  # 从列表中调取随机数


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("randrange ([start,] stop [,step])方法")

from random import randrange

print("randrange (3, 8, 2)", randrange(3, 8, 2))  # 随机调取3到8之间的数值,步长为2,也就是3, 5, 7


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("random方法")

from random import random

print(random())  # 生成一个0到1之间的随机数


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("shuffle方法")

from random import shuffle

lst = [1, 3, 2, 4, 5, 7, 6]
shuffle(lst)

print(lst)  # 随机排列列表


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("uniform方法")

from random import uniform

print("uniform(2, 5) 随机生成的浮点数是 ", uniform(2, 5))


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("seed方法")

from random import seed

a_seed = 0

while a_seed <3:  # 这更像是一个假随机数,因为这个随机数都是固定的,无论何时何地随机数都是一样的
    seed(1)
    print(random())
    print(random())
    print(random())
    seed(2)
    print(random())
    print(random())
    print(random())
    a_seed += 1


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
"""
Python三角函数
Python包括以下三角函数:
如果不懂可以看下这个网站,在图形界面看下三角函数的形态 https://zuotu.91maths.com/
"""

print("pi方法, e方法")
print("pi方法就是π")
print("e就是即自然常数(自然常数)")


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------

print("sin方法,asin方法")


from math import sin, asin, pi

print("sin45° 等于 ", sin(pi / 4))  # sin() 返回的x弧度的正弦值。
print("asin45° 等于 ", asin(pi / 4))  # asin() 返回x的反正弦弧度值。

print("sin90° 等于 ", sin(pi / 2))
# print("asin90° 等于 ", asin(pi/2))  # 报错 asin介于-1和1之间


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("cos方法, acos方法")

from math import cos, acos

print("cos45° 等于 ", cos(45 * pi / 180))  # cos() 返回的x弧度的正弦值。
print("acos45° 等于 ", acos(45 * pi / 180))  # acos() 返回x的反正弦弧度值。

print("cos90° 等于 ", cos(90 * pi / 180))
# print("acos90° 等于 ", acos(pi/2))  # 报错 acos介于-1和1之间


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("tan方法, atan方法")

from math import tan, atan

print("tan45° 等于 ", tan(45 * pi / 180))
print("atan45° 等于 ", atan(45 * pi / 180))


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
print("degrees方法, radians方法")
print("degrees方法是弧度转化成角度, radians方法是角度转化成弧度")

from math import degrees, radians

print(degrees(pi / 4))
print(radians(pi / 4))


print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------
# 2020-03-13更新format数字格式符

print(f"π保留两位小数{3.1415926:.2f}")  # 这两种方法都可以,只是要注意版本,早起版本不支持这样写

print(f"π保留两位小数{3.1415926:+.2f}")

print("-1代入公式得{:+.2f}".format(-1))

print("π保留整数部分{:+.0f}".format(3.1415926))

print("以逗号分隔数字{:,}".format(1000000))
print("")

print("左右对齐方式")
print("Number\t\t\vtSquare\t\vCube")
for i in range(1, 11):
    # print(i,"\t\t\v",i**2,"\t\t\v",i**3)
    print("{:<3d}\t\t\t\v{:^3d}\t\t\v{:>4d}".format(i, i**2, i**3))  # 这是根据数字的位数决定的
print("")

a_format = [1, 7, 12, 123]
print("位数不够左边自动补零")
for i in a_format:
    print("两位数字输出{:0>2d}".format(i))  # 位数不够左边自动补零
print("")

print("右边自动补零凑够位数")
for i in a_format:
    print("两位数字输出{:0<3d}".format(i))  # 位数不够右边自动补零

print("")
print(f"11的二进制为{11:b}")
print(f'11的十进制为{11:d}')
print(f"11的八进制为{11:o}")
print("11的十六进制为{:x}".format(11))
print("11的十六进制为{:#x}".format(11))
print("11的十六进制为{:#X}".format(11))

print("\r")
print("-" * 50)

# -----------------------------------------------------------------------------------------------------





你可能感兴趣的:(笔记,python)