python菜鸟100例精选


  # 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
def four_number():
    n = 0
    for i in range(1,5):
        for j in range(1,5):
            for k in range(1,5):
                if (i != j) and (i!=k) and (j!=k):
                    n += 1
                    # print(i,j,k)
    print(n)
    print(64-n)
# four_number()

# 输入某年某月某日,判断这一天是这一年的第几天?
import datetime
def ymd_days(y,m,d):
    # months = (0,31,59,90,120,151,181,212,243,273,304,334)
    # days = months[m-1]
    # days += d
    # if y%400 == 0 or y%4==0 and y%100 !=0:
    #     if m > 2:
    #         days +=1
    days = (datetime.datetime(y,m,d)-datetime.datetime(y,1,1)).days
    days += 1
    print(days)
# ymd_days(2019,7,17)

# 输入三个整数x,y,z,请把这三个数由小到大输出。
def sort_three():
    list1 = []
    for i in range(3):
        x = int(input("整数:"))
        list1.append(x)
    list1.sort()
    print("从小到大输出:")
    print(list1)
# sort_three()

# 斐波那契数列。
def faibo(n):
    a,b = 1,1
    for i in range(n-1):
        a,b = b,a+b
    print(a)
# faibo()

def faibo2(n):
    if n == 1 or n == 2:
        return 1
    return faibo2(n-1)+faibo2(n-2)
# faibo2(6)

# 输出 9*9 乘法口诀表。
def n_n():
    for i in range(1,10):
        for j in range(1,i+1):
            print("%s*%s=%s"%(j,i,i*j),end='\t')
        print()
# n_n()

# 判断101-200之间有多少个素数,并输出所有素数。
def sushu(n):
    for i in range(2,n):
        if n % i == 0:
            return 0
    return n
def many_sushu():
    s = 0
    for i in range(100,200):
        if sushu(i):
            print(i)
            s += 1
    print(s)
# many_sushu()

# 打印出所有的"水仙花数"
def shui_xian():
    for n in range(100,1000):
        i = n//100
        j = n//10%10
        k = n%10
        if n == i**3+j**3+k**3:
            print(n)
# shui_xian()

# 将一个正整数分解质因数。
def fenjiezhi(n):
    print("%s="%n,end='')
    while True:
        if sushu(n):
            print(n)
            break
        for i in range(2,n):
            if n % i ==0:
                print(i,end='*')
                n = n // i
                break

# fenjiezhi(90)

# 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
def zifushu():
    n = input("输入字符串:")
    eng,num,space,others=0,0,0,0
    for i in n:
        if i.isalpha():
            eng += 1
        elif i.isdigit():
            num += 1
        elif i.isspace():
            space += 1
        else:
            others += 1
    print(eng,num,space,others)
# zifushu()

# 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
def snum_nnum():
    a = int(input("输入a的值:"))
    n = int(input("相加n次:"))
    Tn = 0
    s = 0
    for i in range(n):
        Tn += a
        s += a
        a *= 10
    print(s)
# snum_nnum()

# 一个数如果恰好等于它的因子之和,这个数就称为"完数"。找出1000以内的所有完数。
def wanshu():
    for i in range(6,1001):
        s = 0
        if not sushu(i):
            for j in range(1,i):
                if i % j == 0:
                    s += j
            if s == i:
                print(i)
# wanshu()

# 打印出如下图案(菱形):
def lingxing(n):
    for i in range(n+1):
        print("  " * (n - i), end='')
        print(" *"*(2*i-1))
    for i in range(n-1):
        print("  "*(i+1), end='')
        print(" *"*(2*(n-i)-3))
# lingxing(6)

# 利用递归方法求5!。
def jiecheng(n):
    if n == 1:
        return 1
    return n*jiecheng(n-1)
# print(jiecheng(5))

# 给一个n位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
def num_int(n):
    n = str(n)
    l = len(n)
    print("该正整数为:%s位数"%l)
    l -= 1
    while l>=0:
        print(n[l])
        l -= 1
# num_int(4561348)

# 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
def huiwen(n):
    n = str(n)
    if n[0] == n[4] and n[1]==n[3]:
        print("是回文数")
    else:
        print("不是回文数")
# huiwen(12321)

# 对10个数进行排序
# 冒泡排序
def maopao():
    nums = [10,9,8,7,6,5,4,3,2,1]
    n = len(nums)
    for i in range(n-1):
        for j in range(n-1-i):
            if nums[j] > nums[j+1]:
                nums[j+1],nums[j] = nums[j],nums[j+1]
        print(nums)
    print("排序完成")
    print(nums)
# maopao()

# 选择排序
def paixue():
    nums = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    n = len(nums)
    for i in range(n-1):
        for j in range(i,n):
            if nums[i] > nums[j]:
                nums[i],nums[j] = nums[j],nums[i]
        print(nums)
    print("排序完成")
    print(nums)
# paixue()

# 将一个列表逆序输出。
def nishuzu():
    nums = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    n = len(nums)
    while n > 0:
        print(nums[n-1],end=" ")
        n -= 1
    print()
    print(nums)
# nishuzu()

# 打印出杨辉三角形 要求打印出10行
def yanghui():
    a = list()
    for i in range(10):
        a.append([])
        for j in range(10):
            a[i].append(0)
    for i in range(10):
        a[i][0] = 1
        a[i][i] = 1
    for i in range(2,10):
        for j in range(1,i):
            a[i][j] = a[i-1][j-1] + a[i-1][j]
    for i in range(10):
        for j in range(i+1):
            print(a[i][j],end='\t')
        print()
# yanghui()

# 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
def baoshu3(n):
    n = [i for i in range(1,n+1)]
    i = 0
    while len(n)!=1:
        n.append(n[0])
        del n[0]
        i += 1
        if i % 2 == 0:
            print(n[0])
            del n[0]
    print(n)
# baoshu3(15)

# 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

def houzi_fentao():
    i = 0
    j = 1
    s = 0
    while i<5:
        s = 4 * j
        for i in range(5):
            if s%4 != 0:
                break
            else:
                i += 1
            s = s/4*5 + 1
        j += 1
    print(s)
# houzi_fentao()

# 809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
def numbertwo_two():
    for i in range(10,100):
        if 80<=8*i<100 and 1000<=809*i and 9*i>100:
            print(i)
            print(809*i)
# numbertwo_two()

# 求0—7所能组成的奇数个数。
def jishu():
    s = 4
    i = 4
    for j in range(1,8):
        print("%s位数有%s个奇数"%(j,i))
        if j <= 1:
            i *= 7
        else:
            i *= 8
        s += i
    print("共有%s个"%s)
# jishu()

# 输入一个奇数,然后判断最少几个 9 除于该数的结果为整数。
def number_nine(n):
    s = 9
    while s%n !=0:
        s = str(s)
        s = s[:]+'9'
        s = int(s)
    s = str(s)
    l = len(s)
    print("需要%s个9"%l)
# number_nine(11)

# 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
def jiami(n):
    aa = list()
    aa.append(n%10)
    aa.append(n//10%10)
    aa.append(n//100%10)
    aa.append(n//1000)
    aa.reverse()
    print(aa)
    for i in range(4):
        aa[i] += 5
        aa[i] %= 10
    aa[0],aa[1],aa[2],aa[3]=aa[3],aa[2],aa[1],aa[0]
    print(aa)

# jiami(1234)

发布了34 篇原创文章 · 获赞 52 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43157273/article/details/96491073
今日推荐