python课程思路_讨论 - 廖雪峰的官方网站

第一题:

def normalize(name):

#这是最简单的方法:    return name[0].upper()+name[1:].lower()

#如果非得要在此函数中使用map,是不是只能利用join方法了?使用str()是为了防止出现数字,可以简化

return name[0].upper()+"".join(str(s) for s in list(map(str.lower,name[1:])))

#如果list中没有数字可以直接这样写

return name[0].upper()+"".join(list(map(str.lower,name[1:])))

第二题:

#比较简单,没有什么可说的

def prod(L):

def f(x,y):

return x*y

return reduce(f,L)

第三题:

#思路:首先去掉字符中的点,将字符变为整数,然后根据点所在位置n决定将此整数除以10的n-1次方。本次作业不参考各位大佬使用的split、replace以及颠倒字符次序等超课程的方法,基本以课程范围内学习的内容完成作业,供大家参考,如有错误请多多见谅。

#将字符串变为整数的函数

def str2int(num):

digits={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}

def f(x,y):

return x*10+y

def str2num(string):

for w in string:

return digits[w]

return reduce(f,list(map(str2num,num)))

l=[]

#将字符串去点后,顺便定位点的位置。

for char in s:

if char=='.':

po=len(s)-len(l)-1

continue

l.append(char)

return str2int(l)/10**po

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值