栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python的基础

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python的基础

虽说python是弱类型的,但在使用时还是需要明确一些基本类型的。在所有的基本类型中最复杂的就是数字类型。本章就一起熟悉中基本类型中的-数值。

一、基础操作 1.1、格式化输出

通用格式: 【[<>^]?width[,]?(.digits)?】,1、width和digits为整数,分别表示整体输出的宽度(不足的用空格填充),digits表示小数点占了几位(默认四舍五入);2、?可选可不写:3、<>^表示补空格的方向;4、,.分别表示是否使用分隔符;5、f代表格式化的意思,如果档加f则{}当做普通字符串输出。

 

x = 1234.56789
print(f'8.2f format {x}: {x:8.2f}')       //1234.57
print(f'>10.1f format {x}: {x: >10.1f}')  //1234.6
print(f'<10.1f format {x}: {x: <10.1f}')  //1234.6
print(f'^10.1f format {x}: {x: ^10.1f}')  //1234.5
print(f', format {x}: {x: ,}')            //1,234.56789,整数部分用,分隔
print(f'0,.1f format {x}: {x: ,.1f}')     //1,234.6,整数部分用,分隔,小数部分为.分隔

 

指数计数

 

print(f'e format {x} is: {x: e}')  //1.234568e+03
print(f'0.2E format {x} is: {x: 0.2E}')//1.23E+03
print(f'x format: {x: 0.1f}') //1234.6
print(f'-x format: {-x: 0.1f}')//取反操作 -1234.6

 

1.2、进制变换

 

x = 1234
print(f'binary of {x} is: {bin(x)}') //二进制 0b10011010010
print(f'octal of {x} is: {oct(x)}')  //十进制 0o2322
print(f'hex of {x} is: {hex(x)}')    //16进制 0x4d2

 

不显示制表符

 

print(f'binary not show 0b:{x:b}') //二进制 10011010010
print(f'octal not show 0o:{x:o}')  //十进制 0o2322

 

1.3、函数

 

print(int('4d2', 16))         //1234
print(int('10011010010', 2))  //1234
print(int('2322', 8))         //1234

 

1.4、四舍五入

 

print(round(1.23, 1)) #1.2

#round函数对于5这种中间值会返回离它最近的偶数
print(round(2.5, 0))  #2.0
print(round(1.5, 0))  #2.0

a = 1627731
print(round(a, -2))  #1627700

 

1.5、无穷

在python中没有特定的对象来表示这样的浮点数,所以需要用float来创建。

 

print(f"float('inf') = {float('inf')}") #inf
print(f"float('-inf') = {float('-inf')}") #-inf
print(f"float('nan') = {float('nan')}") #nan

import math
print(f"float('inf') type is inf: {math.isinf(float('inf'))}") #true
print(f"float('nan') type is nan: {math.isnan(float('nan'))}") #ture

 

二、浮点数

建议根据实际情况来,虽然普通的用法有误差但速度比较快,所以不是严格的不要用decimal,它的精度是17位。

 

a = 2.1
b = 4.2
print(a + b)  # 这处是有误差的6.300000000000001

# 浮点数要用这种格式
from decimal import Decimal
a = Decimal('2.1')
b = Decimal('4.2')
print(f'a + b = {a + b}')  # a + b = 6.3

from decimal import localcontext
a = Decimal('1.3')
b = Decimal('1.7')
print(f'a / b = {a / b}')  # a / b = 0.7647058823529411764705882353
with localcontext() as ctx:
    ctx.prec = 3  # 位数
    print(f'a / b = {a / b}')  # a / b = 0.765

with localcontext() as ctx:
    ctx.prec = 50
    print(f'a / b = {a / b}')  # a / b = 0.76470588235294117647058823529411764705882352941176

# 在做浮点数运算时要注意精度的问题,第一个例子是错误的,第二个是正确的
num_list = [1.23e+18, 1, -1.23e+18]
print(f'sum result is: {sum(num_list)}')  # sum result is: 0.0

import math
print(f'math sum result: {math.fsum(num_list)}')  # math sum result: 1.0

 

三、分数

程序中一般很少用到,如果不是必须的还是建议定义成整数或浮点数来运算。

 

from fractions import Fraction
a = Fraction(5, 4)
b = Fraction(7, 16)

print(f'{a} + {b} = {a + b}')
print(f'{a} * {b} = {a * b}')

c = a * b
print(f'numerator of {c} is: {c.numerator}')
print(f'denominator of {c} is: {c.denominator}')

print(f'float({c}) = {float(c)}')

print(f'{c} limit denominator 8 = {c.limit_denominator(8)}')

x = 3.75
print(f'{x} to fractions is: {Fraction(*x.as_integer_ratio())}')

5/4 + 7/16 = 27/16
5/4 * 7/16 = 35/64
numerator of 35/64 is: 35
denominator of 35/64 is: 64
float(35/64) = 0.546875
35/64 limit denominator 8 = 4/7
3.75 to fractions is: 15/4

 

四、随机数

 

import random
values = [1, 2, 3, 4, 5, 6]
"""随机选择1个"""
print(f'random choice from {values} is {random.choice(values)}')  #1
"""随机选择2个"""
print(f'random sample 2 from {values} is {random.sample(values, 2)}') #[5, 3]

"""只是打乱元素的顺序"""
random.shuffle(values)
print(f'random shuffle is:{values}') #[3, 5, 4, 6, 2, 1]

"""生成随机数"""
print(f'random.randint(0,10) = {random.randint(0, 10)}') #9

"""生成0~1之间的随机数"""
print(f'random.random() = {random.random()}') #0.6299961967523697

"""获取N位随机数的整数"""
x = random.getrandbits(200)
print(f'random.getrandbits(200) = {x}') #636975414748915127401449454055264672180771111158792457403568

"""random()采用了Twister算法,这是一个确定性算法,可以在计算前用seed()设置种子"""
print(f'random.seed() = {random.seed()}')
print(f'random.seed(123) = {random.seed(123)}')

 

五、Numpy

这是一个三方的库,是很多科学与工程库的基础。在机器学习中应用广泛。下面只举两个简单的例子。

5.1、数组运算
import numpy as np

ax = np.array([1, 2, 3, 4])
ay = np.array([5, 6, 7, 8])

print(f'{ax} * 2 = {ax * 2}') #[2 4 6 8]
print(f'{ax} + 10 = {ax + 10}') #[11 12 13 14]
5.2、矩阵运算
import numpy as np
"""
[[ 1 -2  3]
 [ 0  4  5]
 [ 7  8 -9]]
"""
m = np.matrix([[1,-2,3],[0,4,5],[7,8,-9]])
print(f'm is:n{m}')

"""
[[ 1  0  7]
 [-2  4  8]
 [ 3  5 -9]]
"""
print(f'm.T is:n{m.T}')
"""
[[ 0.33043478 -0.02608696  0.09565217]
 [-0.15217391  0.13043478  0.02173913]
 [ 0.12173913  0.09565217 -0.0173913 ]]
"""
print(f'm.I is:n{m.I}')

v = np.matrix([[2],[3],[4]])
print(f'v is:n{v}')
"""
[[ 8]
 [32]
 [ 2]]
"""
print(f'm * v is:n{m * v}')
https://www.imdb.com/list/ls565483205/
https://www.imdb.com/list/ls565483203/
https://www.imdb.com/list/ls565483257/
https://www.imdb.com/list/ls565483251/
https://www.imdb.com/list/ls565483259/
https://www.imdb.com/list/ls565483270/
https://www.imdb.com/list/ls565483273/
https://www.imdb.com/list/ls565483279/
https://www.imdb.com/list/ls565483215/
https://www.imdb.com/list/ls565483216/
https://www.imdb.com/list/ls565483219/
https://www.imdb.com/list/ls565483218/
https://www.imdb.com/list/ls565483230/
https://www.imdb.com/list/ls565483235/
https://www.imdb.com/list/ls565483234/
https://www.imdb.com/list/ls565483265/
https://www.imdb.com/list/ls565483266/
https://www.imdb.com/list/ls565483264/
https://www.imdb.com/list/ls565483225/
https://www.imdb.com/list/ls565483221/
https://www.imdb.com/list/ls565483240/
https://www.imdb.com/list/ls565483242/
https://www.imdb.com/list/ls565483244/
https://www.imdb.com/list/ls565483290/
https://www.imdb.com/list/ls565483291/
https://www.imdb.com/list/ls565483298/
https://www.imdb.com/list/ls565483283/
https://www.imdb.com/list/ls565483289/
https://www.imdb.com/list/ls565483409/
https://www.imdb.com/list/ls565483451/
https://www.imdb.com/list/ls565483456/
https://www.imdb.com/list/ls565483454/
https://www.imdb.com/list/ls565483459/
https://www.imdb.com/list/ls565483470/
https://www.imdb.com/list/ls565483471/
https://www.imdb.com/list/ls565483476/
https://www.imdb.com/list/ls565483474/
https://www.imdb.com/list/ls565483479/
https://www.imdb.com/list/ls565483416/
https://www.imdb.com/list/ls565483436/
https://www.imdb.com/list/ls565483439/
https://www.imdb.com/list/ls565483461/
https://www.imdb.com/list/ls565483425/
https://www.imdb.com/list/ls565483423/
https://www.imdb.com/list/ls565483422/
https://www.imdb.com/list/ls565483428/
https://www.imdb.com/list/ls565483442/
https://www.imdb.com/list/ls565483448/
https://www.imdb.com/list/ls565483495/
https://www.imdb.com/list/ls565483491/
https://www.imdb.com/list/ls565483492/
https://www.imdb.com/list/ls565483486/
https://www.imdb.com/list/ls565483905/
https://www.imdb.com/list/ls565483907/
https://www.imdb.com/list/ls565483903/
https://www.imdb.com/list/ls565483909/
https://www.imdb.com/list/ls565483908/
https://www.imdb.com/list/ls565483955/
https://www.imdb.com/list/ls565483956/
https://www.imdb.com/list/ls565483975/
https://www.imdb.com/list/ls565483973/
https://www.imdb.com/list/ls565483974/
https://www.imdb.com/list/ls565483979/
https://www.imdb.com/list/ls565483978/
https://www.imdb.com/list/ls565483917/
https://www.imdb.com/list/ls565483919/
https://www.imdb.com/list/ls565483933/
https://www.imdb.com/list/ls565483938/
https://www.imdb.com/list/ls565483965/
https://www.imdb.com/list/ls565483968/
https://www.imdb.com/list/ls565483924/
https://www.imdb.com/list/ls565483940/
https://www.imdb.com/list/ls565483941/
https://www.imdb.com/list/ls565483949/
https://www.imdb.com/list/ls565483995/
https://www.imdb.com/list/ls565483991/
https://www.imdb.com/list/ls565483987/
https://www.imdb.com/list/ls565483986/
https://www.imdb.com/list/ls565483988/
https://www.imdb.com/list/ls565483805/
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989563.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号