python | PythonTip刷题笔记

第3题:字符串逆序

题目描述:

给你一个字符串 a, 请你输出逆序之后的a。

例如:a=‘xydz’

则输出:zdyx

def solve_it(a):
    return ''.join(sorted(a, reverse=True)) #your answer

print(solve_it(a))  # 答案需要输出

注意:对字符串使用列表方法,返回值为列表。若将上述代码中的join函数去掉,则返回值为:

['z', 'y', 'x', 'd']

第9题:最大公约数

题目描述:

给你两个正整数a和b, 输出它们的最大公约数。

例如:a = 3, b = 5

则输出:1

示例:

输入:a = 3 b = 5

输出:1

def solve_it(a,b):
    if b!=0:
        return solve_it(b,a%b)
    else:
        return a

print(solve_it(a,b))  # 答案需要输出

这篇博客中看到了求任意个数的最小公倍数和最大公因数的方法,原博中的注释有问题,改正后粘贴如下:

def Common_multiple(number1, number2):  # 求两个数的最大公因数
   while number1 % number2 != 0:
       number1, number2 = number2, (number1 % number2)
   return number2
 
 
def Maximum_common_divisor(*number):  # 求任意多个数的最大公因数
   while len(number) > 1:
       number = [Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
   return number[0]
 
 
def Minimum_common_multiple(*number):  # 求任意多个数的最小公倍数
   while len(number) > 1:
       number = [number[i]*number[i+1]/Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
   return number[0]

第11题:结尾0的个数

题目描述:

给你一个正整数列表 L, 输出L内所有数字的乘积末尾0的个数。(提示:不要直接相乘,数字很多,相乘得到的结果可能会很大)。

例如: L=[2,8,3,50],

则输出:2

示例:

输入:L = [4, 2, 25, 7777777, 100, 3, 77777777, 77777777, 77777777, 77777777]

输出:4

 

在所有数字的乘积中,每个0都是由一组2和5相乘得到的,因此本题的实质就是计算序列中因数2和5的组数。

#参考代码,如嫌啰嗦,建议删除,一行搞定
def solve_it(L):
    n5, n2 = 0,0
    for x in L:
        xx = x
        while xx%2==0:
            n2 += 1
            xx /= 2
        while xx%5==0:
            n5 += 1
            xx /= 5
    
    return n5 if n2>n5 else n2 #your answer

print(solve_it(L))  # 答案需要输出

第13题:光棍的悲伤

题目描述:

光棍们对1总是那么敏感,因此每年的11.11被戏称为光棍节。小Py光棍几十载,光棍自有光棍的快乐。让我们勇敢地面对光棍的身份吧,现在就证明自己:给你一个整数a,数出a在二进制表示下1的个数,并输出。

例如:a=7

则输出:3

示例:

输入:a = 7

输出:3

 

10进制转2进制的内置函数bin():

input:bin(1)

output:'0b1'
def func(n):
    return True if n=='1' else False
def solve_it(a):    
    return len(list(filter(func,bin(a)[2:]))) #your answer

print(solve_it(a))  # 答案需要输出

第14题:Python之美

题目描述:

输出Python之禅。

注意:输出python之禅的源码即可,不要转换为英文。(小小的提示:print this.s)

import this
def solve_it():
    return '' #your answer

print(solve_it())  # 答案需要输出

人当场傻掉。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值