当前位置: 首页 > article >正文

python-古籍翻译

题目描述

小理跑到外星人的图书馆去读书。有一本外星古籍,里面的内容是用八进制写成的;但小理只能处理十六进制的数据。请你帮忙写一个翻译软件,帮小理把八进制串翻译成十六进制串。

输入

仅一行,一个八进制字符串 s,表示古籍内容。

输出

仅一行,一个十六进制字符串,表示翻译结果。

样例输入1

144

样例输出1

64

样例输入2

1572061125

样例输出2

de86255

提示

数据规模与约定

对于 40% 的数据,有 ∣s∣≤10 ,即输入字符串长度不超过 10

对于 100% 的数据,有 ∣s∣≤1000 ,即输入字符串长度不超过 1000

样例解释

第一组样例:八进制 144 即十进制下的 100,其十六进制表示为 64

第二组样例:八进制 1572061125 即十进制下的 233333333,其十六进制表示为 de86255

来源/分类(难度系数:一星)

进制转换 字符串

完整代码展示:

a=int(input())

b=list(str(a))

b.reverse()

sum=0

for i in range(0,len(b)):

      sum+=eval(b[i])*8**i

res = hex(sum).lower()

print(res[2:])

a=int(input())
b=list(str(a))
b.reverse()
sum=0
for i in range(0,len(b)):
    sum+=eval(b[i])*8**i
res = hex(sum).lower()
print(res[2:])

代码解释:

a=int(input()) ”,导入用户需要转换的八进制数字。

b=list(str(a))

  b.reverse()  ”,将数字a转换为字符串并储存在列表b中,接着将b反转。

sum=0

  for i in range(0,len(b)):

        sum+=eval(b[i])*8**i   ”,令sum=0,接着遍历b中元素,sum+=eval(b[i])*8**i。

res = hex(sum).lower() ”,利用内置十六进制转换函数hex()将十进制数字sum转换为十六进制数字res。

print(res[2:]) ”,打印res的第二至最后一个元素(转换得到的res前两个元素为进制标识符,需舍弃)。

运行效果展示:

拓展延伸:

(一):

hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。

语法:hex(x)

参数说明:x – 10进制整数

返回值:返回16进制数,以字符串形式表示。

实例:

print(hex(255))

>>>0xff

 (二):

oct() 函数将一个整数转换成8进制字符串。

如果传入浮点数或者字符串均会报错。

语法:oct(x)

参数说明:x – 整数。

返回值:返回8进制字符串。

实例:

print(oct(10))

>>>0o12

(三):

bin() 返回一个整数int或者长整数long int的二进制表示。也就是将一个整型数字转换成二进制表示

语法:bin(x)

参数:x – int或者long int数字

返回值:字符串。

实例:

print(bin(1))

>>>0b1

(四):

chr() 用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符。

语法:chr(i)

参数:i – 可以是10进制也可以是16进制的形式的数字。

返回值:返回值是当前整数对应的ascii字符。

(ord()函数是chr()函数的逆函数)。

实例:

print(1)

>>>0x1

                             (部分内容来源于网络) 


http://www.kler.cn/a/306032.html

相关文章:

  • 【初阶数据结构与算法】链表刷题之移除链表元素、反转链表、找中间节点、合并有序链表、链表的回文结构
  • DOM 规范 — MutationObserver 接口
  • 《情商》提升:增强自我意识,学会与情绪共处
  • AtomicInteger 和 AtomicIntegerFieldUpdater的区别
  • activiti5基础和springboot整合
  • scrapy爬取中信证券销售金融产品信息
  • Leetcode面试经典150题-148.排序链表
  • 16. 池化层的基本使用 -- nn.MaxPool2d
  • 【AcWing】【Go】789. 数的范围
  • Leetcode面试经典150题-82.删除排序链表中的重复元素II
  • NISP 一级 | 5.3 电子邮件安全
  • LottieCompositionFactory.fromUrl 加载lottie的json文件
  • 《微信小程序实战(1)· 开篇示例 》
  • Python——俄罗斯方块
  • .NET/C#⾯试题汇总系列:多线程
  • 【有啥问啥】自动提示词工程(Automatic Prompt Engineering, APE):深入解析与技术应用
  • Spring security 动态权限管理(基于数据库)
  • 多源BFS的模板以及练习题(多源BFS)
  • `character_set_server` 和 `collation_server`
  • nvm安装并配置全局缓存文件
  • 【webpack4系列】webpack初识与构建工具发展(一)
  • 【GO语言】Go语言详解与应用场景分析,与Java的对比及优缺点
  • CSP组T1怪物
  • 升级VMware
  • 视频监控摄像头国标GB28181配置参数逐条解析
  • UE5安卓项目打包安装