ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python-100-Days-master

2021-11-28 20:31:16  阅读:232  来源: 互联网

标签:Python list1 range num master print 100 fn


跟着python100学习一下


100以内的素数

# 输出100以内的所有素数
# 想法:从1到100遍历,假设得到了i=17,那么此时从1到9遍历,如果找到了一个数用17能除尽则跳出循环
# 如果找不到这个数,那么把i输出为素数
for i in range(2,100):
    flag = True
    for k in range(2,int(i/2)+1):
        if i%k == 0:
            flag = False
            break
    if flag:
        print("%d为素数"%i)

10000以内完美数

# 找出10000以内的完美数
# 所有的真因子(即除了自身以外的因子)的和(即因子函数)恰好等于它本身
# 6($6=1+2+3$)和28($28=1+2+4+7+14$)

# 思路:从3到10000遍历,如此时找到的数为8,那么把它进行因式分解,用一个列表进行添加。首先是1,1能被8整除,添加
# 然后是2,2也可以被整除,添加,最后添加4,不添加8
# 然后从列表进行遍历,如果所有数字加和是这个数,那么就输出

for i in range(3,10000):
    list1 = []
    for j in range(1,i):
        if i%j == 0:
            list1.append(j)
    sum = 0
    for k in list1:
        sum += k
    if sum == i:
        print(i)

斐波那契数列前20个数

# 生成斐波那契数列的前20个数
# 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
# 应该写一个迭代函数fn(),如果是0或者1,则返回1,其余则返回fn(n-1)+fn(n-2)

# fn(1)=1,fn(2)=1
def fn(n):
    if n == 2 or n == 1:
        return 1
    else:
        return fn(n-1)+fn(n-2)
    
for i in range(1,21):
    print("fn(%d):%d"%(i,fn(i)))

百钱百鸡

# 公鸡5元一只,母鸡3元一只,小鸡1元三只,用100块钱买一百只鸡,问公鸡、母鸡、小鸡各有多少只?
for little in range(101):
    for f in range(34):
        for m in range(21):
            if m*5+f*3+little/3 == 100:
                print("公鸡为:%d\n母鸡为:%d\n小鸡为:%d"%(m,f,little))
                print("\n")

水仙数

# 寻找水仙数
# 描述:水仙数是三位数,每位数的立方和为数本身
for i in range(100,1000):
    sum1 = 0
    k = str(i)
    for j in k:
        sum1 += int(j)*int(j)*int(j)
    if sum1 == i:
        print(i)

公约数

def gongyueshu(m,n):
    num = 0
    total = 1
    if m>n:
        num = n
    else:
        num = m
    while num>=1:
        if m%num == 0 and n%num == 0:
            total = num
            break
        else:
            num -= 1
    print(total)

公倍数

def gongbeishu(m,n):
    num = m
    while num%n!=0 or num%m!=0:
        num += 1
    print(num)

回文数

# 实现判断一个数是不是回文数的函数
# 给定一个数,获得各位置的数字
# 如743,当743//10不为0,首先743%10获得3,然后743//10获得74,然后均存在列表中
def huiwen(n):
    flag = True
    list1 = []
    while True:
        list1.append(n%10)
        n = n//10
        if n == 0:
            break
    for i in range(len(list1)):
        if list1[i] != list1[len(list1)-i-1]:
            flag = False
            break
    print(flag)

生成器和匿名函数

dataSet = [[1, 1, 'yes'],
           [1, 1, 'yes'],
           [1, 0, 'no'],
           [0, 1, 'no'],
           [0, 1, 'no']]

firstLineList = [example[0] for example in dataSet]
tempDict = {}
for value in firstLineList:
    if value not in tempDict:
        tempDict[value] = 0
    tempDict[value] += 1
sortedDict = sorted(tempDict.items(),key=lambda x:x[1],reverse=True)
print(firstLineList)
print(sortedDict)

[1, 1, 1, 0, 0]
[(1, 3), (0, 2)]

yield函数

def foo():
    print("starting...")
    while True:
        res = yield 4
        print("res:",res)
g = foo()
print(next(g))
print("*"*20)
print(next(g))
print(next(g))

yield与斐波那契数列

def fib(n):
    a, b = 0, 1
    for _ in range(n):
        a, b = b, a + b
        yield a,b


def main():
    for val in fib(20):
        print(val)


if __name__ == '__main__':
    main()

strip可以指定字符串

txt = ",,,,,rrttgg.....banana....rrr"
x = txt.strip(",.grta")
print(x)

标签:Python,list1,range,num,master,print,100,fn
来源: https://www.cnblogs.com/lpzju/p/15616471.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有