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("输入有误,请检查输入!")
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值