考点:进制转化函数和数学通用方法【Python习题12】

简介: 考点:进制转化函数和数学通用方法【Python习题12】


考点分析:

   本考点主要考查计算机中的常用数值转化和数学通用算法。

介绍:

   本文将介绍几个python中用于进制转换的函数,讲解数学中的数值转化通用算法案例。

先看题目:

题目:输入一个八进制数,输出一个转换为十进制的数

效果预览:

请输入一个八进制的数:122

82

考题解析:

  1. 常用进制写法

   二进制常用B表示,在python中,我们可以用0b1012,这个数值如果输出时,自动转为十进制。我们可以用简单代码测试:

a=0b1011
print(a)

以上代码输出11,这个11是一个十进制数据。

   八进制常用O表示,十进制常用D表示,十六进制常用H表示。

   通过二进制的示例,我们可以看到一个八进制、十六进制表示后输出为对应十进制数据测试如下:

   八进制测试:

b=0o11
print(b)

输出9

   十六进制测试:

c=0xc
print(c)

输出12

   十进制数据就是程序默认的数据形式,默认输入的变量数据就是十进制。测试如下:

d=101
print(d)

输出101

  2.用函数进行进制转化

二进制、八进制、十六进制 转 十进制,使用int函数解决一切,int函数有两个参数,第一个参数是字符串,第二个参数表示进制,以下是二进制转十进制的测试如下:

a="101"
b=int(a,2)
print(b)

输出5

八进制转十进制测试:

a="11"
b=int(a,8)
print(b)

输出9

十六进制转十进制测试:

a="10"
b=int(a,16)
print(b)

输出16

十进制转二进制使用bin函数即可,测试如下:

a=10
b=bin(a)
print(b)

输出

0b1010

十进制转八进制使用oct函数即可,测试如下:

a=10
b=oct(a)
print(b)

输出

0o12

十进制转为十六进制使用hex函数,测试如下:

a=14
b=hex(a)
print(b)

输出0xe

其它进制转化情况,都可以通过以上几个函数的联合使用,使得二进制、八进制、十进制、十六进制之间实现互相转化。

   3.我们也可以使用通用的数学方法进行转化。

   按照本题目中要求,输入一个字符串,这个字符串就是一个八进制的数字,这个数字我们将其从左到右进行截取,并且依次乘以进制数后加上下一个数值即可得到相应进制结果。例如,我们将八进制12转为十进制,过程应该是:

1)先取1,使用0*8+1=1

2)再取2,使用1)的结果1*8+2=10  

得到的10就是十进制结果。

以上数学方法是一种通用的其它进制转为十进制的方式。

数学通用做法,程序源代码:

#输入八进制数
shu=input("请输入一个八进制的数:")
#使用简单算法计算,这里将输入的字符串从左到右分割,乘以进制数后加上剩下的数就是结果
result=0#表示
for i in range(len(shu)):
    result=result*8+ord(shu[i])-ord('0')  #ord函数是将字符转为ascii码,这里巧妙使用数学中计算通项式得到实际数值
print(result)

总结:

我们平时在python中常用几个特定的函数去解进制转化问题,这样比较快速,比如用bin函数、hex函数、oct函数、int函数,使用这些函数,我们就可以快速搞定了。但是我们也千万不能忘记使用数学通项式的方式去解决进制转化问题,因为在数学中转换是比较通用的,考查一个人的基本算法使用。

相关文章
|
25天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
125 67
|
19天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
43 18
|
11天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
40 8
|
15天前
|
安全
Python-打印99乘法表的两种方法
本文详细介绍了两种实现99乘法表的方法:使用`while`循环和`for`循环。每种方法都包括了步骤解析、代码演示及优缺点分析。文章旨在帮助编程初学者理解和掌握循环结构的应用,内容通俗易懂,适合编程新手阅读。博主表示欢迎读者反馈,共同进步。
|
18天前
|
数据可视化 编译器 Python
Manim:数学可视化的强大工具 | python小知识
Manim(Manim Community Edition)是由3Blue1Brown的Grant Sanderson开发的数学动画引擎,专为数学和科学可视化设计。它结合了Python的灵活性与LaTeX的精确性,支持多领域的内容展示,能生成清晰、精确的数学动画,广泛应用于教育视频制作。安装简单,入门容易,适合教育工作者和编程爱好者使用。
80 7
|
20天前
|
Python
Python中的函数
Python中的函数
32 8
|
23天前
|
JSON 安全 API
Python调用API接口的方法
Python调用API接口的方法
104 5
|
20天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
19天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
7天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
101 80