Python简单练习2

2.编写函数,实现辗转相除法,接收两个整数,返回两个整数的最大公约数。

def gcd(n,m):
    if m>n:
        n,m=m,n
    p=n*m#这里为求最小公倍数做准备
    while m!=0:#辗转思想是逐渐使分母、分子变小
        r=n%m
        n=m
        m=r
    return (n,p//n)#这里返回了一个元组,包含了最大公约数和最小公倍数
print(gcd(12,15))

3.编写函数,接收参数a和n,计算并返回形式如 a+aa+aaa+aaaa+ …+aaa…aaa的表达式前n项的值,其中为小于10的自然数

#define Power Function
def Power(x,n):
    power=1
    while n!=0:
        power=power*x
        n=n-1
    return power

def sum_a(a,n):
    sum=0
    i=0
    for i in range(n):
        ''''推导过程:
        sum=sum+1*a*n
        sum=sum+10*a*(n-1)
        sum=sum+100*a*(n-3)
        .
        .
        .
        不难发现,10的幂加上n的变化数字为一个常数(原来的n)''''
        
        sum=sum+Power(10,i)*a*(n-i)
        print(sum)
    return str(sum)
print(sum_a(5,3))

4.编写函数,接收一个字符串,判断该字符串是否回文。所谓回文是指,从前向后读和从后向前读是一样的

#最简单的方法是:使用Python的切片str2=str[::-1],再判断str2==str就行了

def Palindrome1(str1): 
    '''循环,首尾检查''' 
    length = len(str1) 
    for i in range(length//2+1): 
        if text[i] != text[length-1-i]: 
            return '非回文'
    return '回文'
str1=input("请输入str1:")
print(Palindrome1(str1))

5.编写函数,模拟标准库itertools中cycle()函数的功能。

def MyCycle(iterable):
    while True:
        for item in iterable:
            yield item
c=MyCycle('abcd')
for i in range(20):
    print(next(c))#取myCycle中的下一个字母

6.编写函数,模拟标准库itertools中count()函数的功能。

def MyCount(start,step):
    while True:
        yield start
        start=start+step
c=MyCount(3,2)
for i in range(20):
    print(next(c))

7.编写函数,模拟内置函数revered()的功能。

print("================================")
def MyReversed(lst):
  for item in lst[::-1]:
     yield item
lst =list(range(5))
r=MyReversed(lst)
print(lst)
print(next(r))
print(next(r))
print(next(r))
print(next(r))
print(next(r))
print("================================")

8.编写函数,模拟内置函数all()的功能。

def MyAll(iterable):
    for item in iterable:
        if not item:
            return False
    return True
print("================================")   

9.编写函数,模拟内置函数any()的功能。

def MyAny(iterable):
    for item in iterable:
        if item:
            return True
    return False
      

在这里插入图片描述

Guess you like

Origin blog.csdn.net/qq_46144237/article/details/109430568