python十六进制和十进制互转

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。

示例1                                                                                                                                            
输入                                                                                                                                             
0xA                                                                                                                                            
输出                                                                                                                                             
10                                                                                                                                                                                                                                                                                  
                                                                                                                                               
"""                                                                                                                                            
Return the hexadecimal representation of an integer.                                                                                           
                                                                                                                                               
   >>> hex(12648430)                                                                                                                           
   '0xc0ffee'                                                                                                                                  
"""                                                                                                                                            
                                                                                                                                               
    def dec_hex(str1): #十转十六                                                                                                                       
                                                                                                                                                   
                                                                                                                                                   
      a = str(hex(eval(str1)))                                                                                                                   
       print('十进制: %s  转换成 十六进制为:%s' %(str1,a))                                                                                                   
        return a                                                                                                                                   
                                                                                                                                                   
    def hex_dec(str2): #十六转十                                                                                                                       
        b = eval(str2)                                                                                                                             
        print('十六进制: %s 转换成十进制为:%s:'  %(str2,b))                                                                                                   
        return b                                                                                                                                   
                                                                                                                                                   
    if __name__ == '__main__':                                                                                                                     
        str1 = input("十进制数值:")                                                                                                                     
        print(dec_hex(str1))                                                                                                                       
        str2 = input("十六进制数值:")                                                                                                                    
        print(hex_dec(str2))                                

结果:

十进制数值:10
十进制: 10  转换成 十六进制为:0xa
0xa
十六进制数值:0xA
十六进制: 0xA 转换成十进制为:10
10

参考

eval(expression[, globals[, locals]])                                                                                                        
 expression : 表达式。                                                                                                                            
 globals : 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。                                                                                                     
 locals : 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。                                                               

eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果

语法上:调用的是:eval(expression,globals=None, locals=None)返回的是计算结果

其中: expression是一个参与计算的python表达式

globals是可选的参数,如果设置属性不为None的话,就必须是dictionary对象了

locals也是一个可选的对象,如果设置属性不为None的话,可以是任何map对象了
python是用命名空间来记录变量的轨迹的,命名空间是一个dictionary,键是变量名,值是变量值。

当一行代码要使用变量 x 的值时,Python 会到所有可用的名字空间去查找变量,按照如下顺序:

1)局部名字空间 - 特指当前函数或类的方法。如果函数定义了一个局部变量 x, 或一个参数 x,Python 将使用它,然后停止搜索。

2)全局名字空间 - 特指当前的模块。如果模块定义了一个名为 x 的变量,函数或类,Python 将使用它然后停止搜索。

3)内置名字空间 - 对每个模块都是全局的。作为最后的尝试,Python 将假设 x 是内置函数或变量。

python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。我们可以用print (locals())来查看该函数体内的所有变量名和变量值。

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值