python字符转整形

# -*- coding: utf-8 -*-

'''
    练习一:
    自己写一个函数,实现字符串转换为整数
    {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
    例如: '123456'
    返回 123456数字
    使用mapreduce函数
'''
# 字符串也可以使用map函数遍历,让每一个字符都执行一次int函数
# list1 = list(map(int,'123456'))

'''
    
'''

# list1 = ['0','1','2','3','4','5','6','7','8','9']
# dict1 = {}
# for x in range(0,10):
#     dict1[list1[x]] = x
# rs = input('请输入您要转换的字符串:')
# list2 = []
# for s in rs:
#     if s in dict1.keys():
#         a = dict1[s]
#         list2.append(a)
# num = 0
# for x in range(0,len(list2)):
#     num = list2[x] * (10 ** (len(list2) - x - 1)) + num
# print(num)


'''
    转换过程:
    1.先将字符串传入char_number函数中,在函数中,根据传入的字符串,在
字典中取出对应的数字,并返回,使用map()让要转换的字符串中的每个字符都执行
一次char_number函数,执行完成之后会得到一个列表,例如[1,2,3,4,5,6]
    2.使用reduce做累加,在累加函数中,让传入第一个参数*10再加上第二个函数值
第一次执行得到一个1*10+2=12,第二次执行;12*10+3 = 123,依次自行完成后,得到123456
'''


# 定义一个函数,将字符串转换为一个一个数字
def char_number(string):
    chars_dict = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
    # 根据传递进来的字符串,作为key取出相应数字
    number = chars_dict[string]
    # 返回取出的数字
    return number
# 转换列表
rs = list(map(char_number,'123456'))
# [1,2,3,4,5,6]组合起来,得到123456
def result(x,y):
    # x*10+y
    num = x*10+y
    return num
# python3中需要引入reduce函数
from functools import reduce
# 使用reduce函数调用
# 可以使用lambda写简单函数
rs = reduce(lambda x,y:x*10+y,rs)
print(rs)

# 定义一个INT(string):
def INT(string):
    #函数中可以嵌套函数
    def cha_number(s):
        chars_dict = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
        num = chars_dict[s]
        return num
    rs = list(map(cha_number,string))
    # 累加
    number = reduce(lambda x,y:x*10+y,rs)
    # 返回转换之后的整数
    return number
number = INT('123456')
print(number)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值