Python入门教程 —— 进制转换

找其他编译器,系统解释器,这样速度会快很多。 

进制

现代的计算机和依赖计算机的设备里都用到二进制(即0和1)来保存和表示数据,一个二进制表示一个比特(Bit)。

在二进制的基础上,计算机还支持八进制和十六进制这两种进制。

除了计算机里的进制以外,我们生活中经常用到的是十进制。

Python语言支持二进制、八进制、十六进制以及十进制的数字表示。 

a = 12 # 默认数字是十进制
print(a + 1)

b = 0b11101   # 以0b开头的数字是二进制
print(b + 1)

c = 0o12  # 以 0o 开头的数字是八进制
print(c + 1)

d = 0x1A  # 以 0x 开头的数字是十六进制
print(d + 1)

进制转换

不同进制的数字之间可以通过一定的计算规则相互转换。

# 十进制  <==>   二进制
# 二进制  ==> 八进制
# 二进制  ==> 十六进制

a = -23
print(bin(a))  # -0b10111

c = 0b1010
print(c)

整数类型操作 

# Python里的数据类型:
# 整型(int)  浮点型(float) 复数(complex)
# 字符串(str)  布尔(bool)  列表(list)  元组(tuple)  字典(dict)  集合(set)

# 整型就是整数。计算机其实只能保存二进制 0 和  1,为了方便数据的表示,同时计算机也支持八进制和十六进制
# 二进制  八进制  十六进制   十进制   在Python里都能够表示
a = 98  # 默认数字都是十进制的数字。 98 就是十进制的九十八

b = 0b101101101  # 以 0b 开头的数字是二进制
print(b)  # 当使用print语句打印一个数字的时候,默认也是使用十进制打印输出的

# c = 0b121010102  二进制里最大的个位数是1,不能出现2

c = 0o34  # 以 0o开头的数字是八进制的数字
print(c)  # 28

# x = 0o79  八进制里最大的个位数是7

# 十六进制 0~9 a~f
d = 0x2a  # 以 0x开头的数字是十六进制
print(d)  # 42

使用代码进行进制转换

a = 12  # 十进制的数字12
print(bin(a))  # 0b1100 使用bin内置函数可以将数字转换成为二进制
print(oct(a))  # 0o14 使用oct内置函数可以将数字转换成为八进制
print(hex(12))  # 0xc  使用hex内置函数可以将数字转换成为十六进制

数据类型转换

函数说明
int(x [,base ])将x转换为一个整数
float(x)将x转换为一个浮点数
str(x)将对象 x 转换为字符串
bool(x)将对象x转换成为布尔值
  • 转换成为整数

print(int("123"))  # 123 将字符串转换成为整数

print(int(123.78))  # 123 将浮点数转换成为整数

print(int(True))  # 1 布尔值True转换成为整数是 1
print(int(False)) # 0 布尔值False转换成为整数是 0

# 以下两种情况将会转换失败
'''
123.456 和 12ab 字符串,都包含非法字符,不能被转换成为整数,会报错
print(int("123.456"))
print(int("12ab"))
'''

# 使用int()函数进行类型转换时,还可以传入两个参数,第二个参数用来表示进制。
print(int("21",8))  # 输出的结果是17.八进制的21,对应的十进制数字是17
print(int("F0",16)) # 输出的结果是240.十六进制的F0,对应的十进制数字是240

"""
以下写法会报错。八进制里允许的最大值是7,所以 29 不是一个合法的八进制数
print(int("29",8))
"""
# 使用 int 内置类可以将数据转换成为整数

a = '31'
b = int(a)
print(a)  # 31
print(b)  # 31

# print(a + 1)  # 报错
print(b + 1)  # 32

# 如果字符串不是一个合法的数字,会直接报错
# x = 'hello'
# y = int(x)
# print(y)

x = '1a2c'
y = int(x, 16)  # 把字符串 1a2c 当做十六进制转换成为整数
print(y)  # 6700  打印一个数字,默认使用十进制输出
print(bin(y))

m = '12'
n = int(m, 8)  # 把字符串的 12 当做八进制转换成为整数
print(n)  # 10
  • 转换成为浮点数

f1 = float("12.34")
print(f1)   # 12.34
print(type(f1)) # float 将字符串的 "12.34" 转换成为浮点数 12.34

f2 = float(23)
print(f2)  # 23.0
print(type(f2)) # float 将整数转换成为了浮点数
a = '12.34'
# 使用内置 float 类可以将其他类型数据转换成为 float浮点数
b = float(a)
print(b + 1)

# 如果字符串不能被转换成为有效的浮点数,会报错
# c = float('hello')
# print(c)

c = 101
print(float(c))  # 101.0

m = float('12')  # 将字符串转换成为浮点数
n = float(12)   # 将整型数字转换成为浮点数
print(m, n)

  • 转换成为字符串

str1 = str(45)
str2 = str(34.56)
str3 = str(True)
print(type(str1),type(str2),type(str3))
# 使用 str 内置类可以将其他类型的数据转换成为字符串
a = 34
b = str(a)

print(a + 1)  # 35
# print(b + 1)
print(a)  # 34
print(b)  # 34

print(type(a))  # <class 'int'>
print(type(b))  # <class 'str'>

  • 转换成为布尔值

print(bool(''))
print(bool(""))
print(bool(0))
print(bool({}))
print(bool([]))
print(bool(()))
print(bool(None))
# 使用 bool内置类可以将其他数据类型转换成为布尔值
print(bool(100))  # 将数字100转换成为布尔值
print(bool(-1))  # -1转换成为布尔值也是True
print(bool(0))  # False

# 数字里,只有数字 0 被转换成为布尔值是False,其他数字转换成为布尔值都是True

print(bool('hello'))  # True
print(bool('False'))  # True
print(bool(''))  # False
print(bool(""))  # False
# 字符串里,只有空字符串  ''  / "" 可以转换成为False,其他字符串都转换成为True

# None 转换成为布尔值是 False
print(bool(None))  # False
print(bool("None"))  # True

print(bool([]))  # False
print(bool(()))  # False
print(bool({}))  # False

print(bool())

# {'name': 'zhangsan', 'age': 18}
# {1,2,3,4}
# {}  # 空字典
s = set()  # 空集合
print(bool(s))

# 数字0,空字符串 ''/"",空列表[],空元组(),空字典{},空集合set(),空数据None会被转换成为False

# 在计算机里,True和False其实就是使用数字 1 和 0 来保存的
print(True + 1)  # 2
print(False + 1)  # 1

# 隐式类型转换
if 0:
    print('good')

在python中,只有空字符串'',"",数字0,空字典{},空列表[],空元组(),和空数据None会被转换成为False,其他的都会被转换成为True

# 进制转换  将 int 类型以不同的进制表现出来
# 类型转换  将一个类型的数据转换为其他类型的数据
# int ==> str    str ==> int    bool ==> int  int ==> float

age = input('请输入您的年龄:')
# 原因: input 接收到的用户输入,都是 str字符串类型
# 在Python里,如果字符串和数字做加法运算,会直接报错
# 把字符串类型的变量 age 转换成为数字类型的 age
# print(age + 1)  错误
# print(type(age))  # <class 'str'>

# 使用 int 内置类可以将其他类型的数据转换成为整数
new_age = int(age)
# print(type(new_age)) <class 'int'>
print(new_age + 1)

# 为什么要转换数据类型:因为不同的数据类型,进行运算时,它的运算规则不一样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/947514.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML5新特性|05 CSS3边框CSS3背景

CSS3边框 1、CSS3边框: 通过CSS3&#xff0c;您能够创建圆角边框&#xff0c;向矩形添加阴影&#xff0c;使用图片来绘制边框-并且不需使用设计软件&#xff0c;比如PhotoShop。 属性: border-radius 圆角box-shadow:水平阴影 垂直阴影 阴影的清晰度 阴影的大小 阴影的颜色…

《Vue3实战教程》26:Vue3Transition

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》

SpringCloudAlibaba实战入门之Sentinel服务降级和服务熔断(十五)

一、Sentinel概述 1、Sentinel是什么 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 一句话概括:sentinel即Hystrix的替代品,官网: https://sentinelguard.io/zh…

Scratch教学作品 | 白水急流——急流勇进,挑战反应极限! ‍♂️

今天为大家推荐一款刺激又好玩的Scratch冒险作品——《白水急流》&#xff01;由AgentFransidium制作&#xff0c;这款作品将带你体验惊险的急流救援任务&#xff0c;帮助那位“睡着的疯狂人”安全穿越湍急水域&#xff01;想要挑战自己的反应极限&#xff1f;快来试试吧&#…

计算机毕业设计Django+Tensorflow音乐推荐系统 音乐可视化 卷积神经网络CNN LSTM音乐情感分析 机器学习 深度学习 Flask

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

Nginx服务器配置SSL证书

1.执行以下命令&#xff0c;在Nginx的conf目录下创建一个用于存放证书的目录。 cd /usr/local/nginx/conf #进入Nginx默认配置文件目录。该目录为手动编译安装Nginx时的默认目录&#xff0c;如果您修改过默认安装目录或使用其他方式安装&#xff0c;请根据实际配置调整。 mkd…

Gemini和ChatGPT全面对比分析,有什么区别和优势?

当 AI 聊天机器人首次出现时&#xff0c;每个人都在竞相发布自己的足够好的第一版 AI 聊天机器人&#xff0c;很容易在 Gemini 与 ChatGPT 等应用程序之间进行比较。但随着 Google 和 OpenAI 不断添加新功能、模型和访问其聊天机器人的方式&#xff0c;差异变得不那么明显。 现…

从0到机器视觉工程师(二):封装调用静态库和动态库

目录 静态库 编写静态库 使用静态库 方案一 方案二 动态库 编写动态库 使用动态库 方案一 方案二 方案三 总结 静态库 静态库是在编译时将库的代码合并到最终可执行程序中的库。静态库的优势是在编译时将所有代码包含在程序中&#xff0c;可以使程序独立运行&…

低代码开发:开启企业数智化转型“快捷键”

一、低代码开发浪潮来袭&#xff0c;企业转型正当时 在当今数字化飞速发展的时代&#xff0c;低代码开发已如汹涌浪潮&#xff0c;席卷全球。从国际市场来看&#xff0c;诸多企业巨头纷纷布局低代码领域&#xff0c;像微软的 PowerApps、OutSystems 等平台&#xff0c;凭借强大…

UE5动画蓝图

动画蓝图&#xff0c;混合空间&#xff0c;状态机&#xff0c;瞄准偏移&#xff0c;动画蒙太奇&#xff0c;动画混合&#xff0c;骨骼绑定&#xff0c;动画重定向&#xff0c;动画通知&#xff0c;Control Rig…… 虚幻动画模块是一个庞大的系统&#xff0c;大模块里又包含很多…

[redux] useDispatch的两种用法

先重写2个方法先, 方便ts类型推导,如果你看不懂为什么这么写, 先看我这篇 [redux] ts声明useSelector和useDispatch-CSDN博客 export type RootState ReturnType<typeof store.getState>; export type AppDispatch typeof store.dispatch; export const useAppDispat…

javaEE-网络原理-1初识

目录 一.网络发展史 1.独立模式 2.网络互联 二.局域网LAN 1.基于网线直连&#xff1a; 2.基于集线器组件&#xff1a; 3.基于交换机组件&#xff1a; 4.基于交换机和路由器组件 ​编辑 三、广域网WAN 四、网络通信基础 1.ip地址 2.端口号&#xff1a; 3.协议 4.五…

jenkins入门3

1、新建视图 视图可以理解为是item的集合&#xff0c;这样可以将item分类。新建视频可以选择加入已有的item 2、新建item 1)输入任务名称、选择一个类型&#xff0c;常用的是第一个freestyle project 2&#xff09;进行item相关配置&#xff0c;general 设置项目名字,描述,参数…

【C语言的小角落】--- 深度理解取余/取模运算

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; C语言的小角落 本篇博客我们来深度理解取余/取模&#xff0c;以及它们在不同语言中出现不同现象的原因。 &#x1f3e0; 关于取整 &#x1f3b5; 向0取整…

mapbox进阶,添加路径规划控件

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️MapboxDirections 控件二、🍀添加路径规划控件1. ☘️实现思路2. ☘️…

linux-25 文件管理(三)复制、移动文件,cp,mv

命令cp是copy的简写&#xff0c;而mv则是move的简写。那既然copy是用于实现复制文件的&#xff0c;那通常一般我们要指定其要复制的是谁&#xff1f;而且复制完以后保存在什么地方&#xff0c;对吧&#xff1f;那因此它的使用格式很简单&#xff0c;那就是cp srcfile dest&…

IDEA开发Java应用的初始化设置

一、插件安装 如下图所示&#xff1a; 1、Alibaba Java Coding Guidelines 2.1.1 阿里开发者规范&#xff0c;可以帮忙本地自动扫描出不符合开发者规范的代码&#xff0c;甚至是代码漏洞提示。 右击项目&#xff0c;选择《编码规约扫描》&#xff0c;可以进行本地代码规范扫…

GPU加速计算的专业云服务平台:蓝耘GPU算力平台的概述、具体应用与教学

文章目录 一、平台介绍蓝耘GPU算力平台概述平台优势与特点 二、注册与登录账号注册流程GPU服务器类型配置选择指南内存和存储容量网络带宽CPU配置 三、创建实例**实例创建步骤**镜像选择与设置 四、连接实例SSH连接方法远程桌面配置 一、平台介绍 蓝耘GPU算力平台概述 蓝耘GP…

golang:微服务架构下的日志追踪系统(二)

背景 在使用Gin框架进行服务开发时&#xff0c;我们遇到了一个日志记录的问题。由于Gin的上下文&#xff08;*gin.Context&#xff09;实现了context.Context接口&#xff0c;在调用日志记录器的Info、Warn、Error等方法时&#xff0c;直接传递Gin的上下文通常不会导致编译错误…

Vue项目整合与优化

前几篇文章&#xff0c;我们讲述了 Vue 项目构建的整体流程&#xff0c;从无到有的实现了单页和多页应用的功能配置&#xff0c;但在实现的过程中不乏一些可以整合的功能点及可行性的优化方案&#xff0c;就像大楼造完需要进行最后的项目验收改进一样&#xff0c;有待我们进一步…