Python十个实例(四)

0x00 约瑟夫环

def josephus(n,k):
    #n代表总人数,k代表报数的数字
    List = list(range(1,n+1))
    index = 0
    while List:
        temp = List.pop(0)
        index += 1
        if index == k:
            index = 0
            continue
        List.append(temp)
        if len(List)==2:
            print(List)
            break

n = int(input("请输入总人数:"))
k = int(input("请输入所报数:"))
josephus(n,k)

0x01 秒表功能

import time
  
print('按下回车开始计时,按下 Ctrl + C 停止计时。')
while True:
    
    input("")
    starttime = time.time()
    print('开始')
    try:
        while True:
            print(round(time.time() - starttime, 0), '秒', end="\n")
            time.sleep(1)
    except KeyboardInterrupt:
        print('结束')
        endtime = time.time()
        print('总共的时间为:', round(endtime - starttime, 2),'secs')
        break

0x02 n个自然数的立方和

def sumThree(n):
    sum = 0
    for i in range(1,n+1):
        sum += i*i*i
    return sum

while True:
    try:
        n = int(input("请输入n的值:"))
        print(sumThree(n))
        break
    except ValueError:
        print("输入错误,请检查输入!")

0x03 数组元素求和

def _sum(arr,n):
    return(sum(arr))

while True:
    try:
        n = int(input("请输入数组的元素个数:"))

        list = []
        for i in range (1,n+1):
            num = int(input("请输入第%d个数:" % i))
            list.append(num)

        l = len(list)
        total = _sum(list,l)

        print("数组元素之和为",total)
        break
    except ValueError:
        print("输入有误,请检查输入!")

0x04 翻转数组

def leftRotate(arr, d, n):
    for i in range(d):
        leftRotatebyOne(arr, n)

def leftRotatebyOne(arr, n):
    temp = arr[0]
    for i in range(n-1):
        arr[i] = arr[i+1]
    arr[n-1] = temp

while True:
    try:
        n = int(input("请输入数组的元素个数:"))

        arr = []
        for i in range (1,n+1):
            num = int(input("请输入第%d个数:" % i))
            arr.append(num)
        d = int(input("请输入要翻转的元素个数:"))
        print("初始数组为:",arr)
        leftRotate(arr,d,n)
        print("翻转数组为:",arr)
        break
    except ValueError:
        print("输入有误,请检查输入!")

0x05 列表头尾对调

def swapList(list):
    list[0],list[-1] = list[-1],list[0]
    return list

while True:
    try:
        n = int(input("请输入列表的元素个数:"))

        list = []
        for i in range (1,n+1):
            num = int(input("请输入第%d个数:" % i))
            list.append(num)

        print("对调前列表为:",list)
        swapList(list)
        print("对调后列表为:",list)
        break
    except ValueError:
        print("输入有误,请检查输入!")

0x06 判断列表元素是否存在

test_list = [ 1, 6, 3, 5, 3, 4 ]
 
print("查看 4 是否在列表中 ( 使用循环 ) : ")
 
for i in test_list:
    if(i == 4) :
        print ("存在")
 
print("查看 4 是否在列表中 ( 使用 in 关键字 ) : ")

if (4 in test_list):
    print ("存在")

0x07 清空列表

list = [1, 2, 3, 4]
print('清空前:', list)  
 
list.clear()
print('清空后:', list)  

0x08 复制列表

def clone_list(li1):
    li_copy = []
    li_copy.extend(li1)
    return li_copy
 
li1 = [1, 2, 3, 4, 5]
li2 = clone_list(li1)
print("原始列表:", li1)
print("复制后列表:", li2)

0x09 计算元素出现次数

def countX(list, x):
    return list.count(x)
 
while True:
    try:
        n = int(input("请输入数组的元素个数:"))

        list = []
        for i in range (1,n+1):
            num = int(input("请输入第%d个数:" % i))
            list.append(num)
        x = int(input("请输入需要查询的数字:"))
        print(x,"出现的次数为:",countX(list,x))
        break

    except ValueError:
        print("输入有误,请检查输入!")
发布了26 篇原创文章 · 获赞 26 · 访问量 3768

猜你喜欢

转载自blog.csdn.net/weixin_43872099/article/details/104319844