本系列例子使用python3.x, 编辑时间:2019-09-03,23:03:36

python以“对象引用”来存储数据,以对象来表达数据,每个对象都具有身份,对象和值。

实用函数:

  • id(): 查看变量的id地址
  • type() : 查看对象类型
  • input(): 获取字符串类型的 用户输入的变量
  • eval(): 用来执行一个字符串表达式,并返回表达式的值。可与input()结合使用,获取连续变量值
  • 交换变量: x, y = y, x
num1, num2, num3 = eval(input("输入三个数,中间以逗号隔开:"))

try:
print(num1, num2, num3)
except Exception as e:
print("error: ", e) 运行结果:
输入三个数,中间以逗号隔开:17, 18, 19
17 18 19

常见的Python内置类型:

  1. 数值类型(Numeric Types): 包含int(整数),float(浮点数),complex(复数)
  2. 序列类型(Sequence Types): 有str(字符串), list(列表),tuple(元组)
  3. 迭代类型(Iterator Types): 提供容器,使用for循环进行迭代操作
  4. 集合类型(Set Types): 有set(可变集合)和frozenset(固定集合或不可变集合)
  5. 映射类型(Mapping Types): 只有dict(字典)

数据类型

1.整数类型:

  • 整数Interger:

    进制转换函数:

    • bin(int): 十进制转二进制,转换的数据会以 0b 为前缀字符
    • oct(int): 十进制转八进制,转换的数据会以 0o 为前缀字符
    • hex(int):十进制转二进制,转换的数据会以 0x 为前缀字符
    • int(s, base):将字符串s根据base参数转换成十进制数值
    • format(value[,format_spec]):此函数用于十进制转换为其它进制(去除前缀字符)
dec_num = 255  # 十进制数
print(bin(dec_num)) # 二进制 输出"0b11111111"
print(oct(dec_num)) # 八进制 输出"0o377"
print(hex(dec_num)) # 十六进制 输出"0xff" bin_num = '0b' + ''
print(int(bin_num, 2)) # 二进制转十进制 输出 21 num = 78 # 十进制数
print(format(num, 'b')) # 输出二进制字符串 "1001110"
print(format(num, 'o')) # 输出八进制字符串 "116"
print(format(num, 'x')) # 输出十六进制字符串 "4e"
  • 布尔Boolean:

    Bool(Boolean)为int的子类,可以使用bool()函数。它只有True和False两个值。

    • True:  可以采用数值1来表示
    • False:  数值0,特殊对象None,空字符串,空列表,空元组都将返回False       

2.浮点数类型:

  • 小数(float):

    常用函数:

    • float():强制转换为浮点数
    • fromhex():对象方法,将十六进制浮点数转为十进制
    • hex():类方法,返回字符串形式的十六进制的浮点数
    • is_integer():类方法,判断是否为整数,若小数位数为零,返回True
float_num = 71.235  # 定义浮点数
float_num_hex = float_num.hex() # 返回字符串形式的十六进制浮点数
print(float_num_hex) # 输出 "0x1.1cf0a3d70a3d7p+6"
print(float.fromhex(float_num_hex)) # 转回十进制数 输出 71.235

    特殊浮点数:

    float('nan'), float('Infinity'), float('-inf')是三个特殊的浮点数,分别代表 非数字(Not a number),无穷大(Infinity), 负无穷大(Negative Infinity)

    可以使用标准库 math 模块中的 isnan()判断是否为NaN数据,isinf()判断是否为inf或-inf数据

  • 复数(complex):

    complex(re, im): re为real,实数;im为imagine,虚数,虚数部分需加上字符‘j’或‘J’

complex_num = 5 + 6j
print(type(complex_num)) # 输出 <class 'complex'>
print(complex_num.real) # 输出实数部分 5.0
print(complex_num.imag) # 输出虚数部分 6.0
  • 更精确的Decimal类型:

    • 使用Decimal类型需要导入decimal模块
    • 将Decimal()函数设为字符串可以指定有效位数,多个Decimal数据相加,和的有效位数为和数中最大的有效位数;相乘的积的有效位数为乘数的有效位数之和
    • getcontext(): 获取Decimal算数运算环境的各项记录的定义,如精确度,舍入规则等。getcontext().prec为精确度,getcontext().rounding为舍入规则
from decimal import *

print(Decimal(10/3)) # 输出 3.333333333333333481363069950020872056484222412109375
num_1 = Decimal('0.125'); num_2 = Decimal('8.8888') # 使用字符串参数指定有效位数
print(num_1 + num_2) # 输出 9.0138
print(num_1 * num_2) # 输出 1.1111000 print(getcontext().prec) # 返回精确度 输出 28
getcontext().prec = 3 # 设置精确度
print(num_1 + num_2) # 输出 9.01 print(getcontext().rounding) # 返回舍入规则 输出 ROUND_HALF_EVEN
getcontext().rounding = ROUND_FLOOR # 设置舍入规则为向负无穷大舍入
print(num_1 * num_2) # 输出 1.11

3.分数类型:

  • 使用分数功能,需要导入fractions模块。Fractions()方法如下

     Fraction(numerator, denominator):

    • numerator: 分子,默认值为0
    • denominator: 分母,默认值为1
    • 无论分子还是分母,只能使用正整数或负整数,否则将报错
  • Fraction()方法将自动约分,但参数不能将浮点数和整数混合使用,否则将产生TypeError错误
  • 配合Fraction()方法可以把分数进行加或乘的运算
from fractions import Fraction

num_1 = Fraction(12, 36)  # 定义分数变量, 分子12,分母36
num_2 = Fraction(3, 7)
print(num_1 + num_2) # 加法 输出 16/21
print(num_1 * num_2) # 乘法 输出 1/7
num_3 = Fraction(2.1, 3) # 报错: error: both arguments should be Rational instances(两个参数都应该是有理数)[由于计算机存储浮点数的方式,不能准确地储存浮点数]

本系列博客主要从《从零开始学Python程序设计》提取

python数据类型及有关的实用函数的更多相关文章

  1. Python数据类型的内置函数之tuple(元组),dict(字典),set(集合)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) tuple(元组)的操作 - (count)统计元组中元素出 ...

  2. Python数据类型的内置函数之list(列表)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) list(列表)的操作 - (append)在列表最后追加指 ...

  3. Python数据类型的内置函数之str(字符串)

    Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) str(字符串)的一些操作 - 字符串相连方法 # 字符串的 ...

  4. Python输入数据类型判断正确与否的函数大全(非常全)

      对于python输入数据类型判断正确与否的函数大致有三类: (1)type(),它的作用直接可以判断出数据的类型 (2)isinstance(),它可以判断任何一个数据与相应的数据类型是否一致,比 ...

  5. python数据类型之元组、字典、集合

    python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...

  6. python 数据类型---布尔型& 字符串

    python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...

  7. Python 数据类型及其用法

    本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...

  8. Python数据类型之“序列概述与基本序列类型(Basic Sequences)”

    序列是指有序的队列,重点在"有序". 一.Python中序列的分类 Python中的序列主要以下几种类型: 3种基本序列类型(Basic Sequence Types):list. ...

  9. day01-day04总结- Python 数据类型及其用法

    Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...

随机推荐

  1. 我用STM32MP1做了个疫情监控平台4—功能完善界面重新设计

    目录 前言 界面展示 新增功能 API 接口说明 多个接口数据的获取和解析 FontAwesome字体图标库的使用 代码下载 系列教程 @ 前言 之前我用STM32MP1和Qt实现了疫情监控平台,系列 ...

  2. 增删改查-java(新手)

     PreparedStatement: 方法: Connection: 方法:  实例: 1.查询: package cn.chuang.JdbcDome; import java.sql.*; pu ...

  3. Journal of Proteomics Research | Th-MYCN转基因小鼠的定量蛋白质学分析揭示了Aurora Kinase抑制剂改变代谢途径和增强ACADM以抑制神经母细胞瘤的进展

    题目:Quantitative Proteomics of Th-MYCN Transgenic Mice Reveals Aurora Kinase Inhibitor Altered Metabo ...

  4. [BJDCTF 2nd]old-hack

    进入首页: 首页告诉了我们是thinkphp5的漏洞. 知道了是哪个版本的话就搜一搜喽:最后发现是thinkphp5.0.23的命令执行 payload_1:查看根目录文件,发现flag位置 http ...

  5. (2)Windows PowerShell使用

    什么是PowerShell: Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能.PowerShell是命 ...

  6. Oracle中rownum的用法总结

      日期:2019/5/22 内容:oracle:数据库:rownum   数据库查询中,常用到"选取前X个"这样的问题,Oracle没有TOP关键字,这类问题都是通过rownum ...

  7. 使用条件随机场模型解决文本分类问题(附Python代码)

    对深度学习感兴趣,热爱Tensorflow的小伙伴,欢迎关注我们的网站!http://www.tensorflownews.com.我们的公众号:磐创AI. 一. 介绍 世界上每天都在生成数量惊人的文 ...

  8. Prism+MaterialDesign+EntityFramework Core+Postgresql WPF开发总结 之 基础篇

    本着每天记录一点成长一点的原则,打算将目前完成的一个WPF项目相关的技术分享出来,供团队学习与总结. 总共分三个部分: 基础篇主要争对C#初学者,巩固C#常用知识点: 中级篇主要争对WPF布局与美化, ...

  9. linux常用命令(运维用到)

    0.基础命令 pwd 查看当前目录 ls 查看当前目录所有文件夹和文件 mkdir 新建目录 mkdir -p a/b/c 创建多级目录 touch 新建文件 cat 查看文件 clear 清屏 sh ...

  10. Ali_Cloud++:阿里云Centos配置iptables防火墙教程

    虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 1):检查iptab ...