python练习题笔记

# 1.求出1900-2017年之间的普通闰年和世纪闰年,分别放在不同列表中;
# 普通闰年:能被4整除,但不能被100整除的年份
# 世纪闰年:能被400整除的年份
ptRunNian=[]
sjRunNian=[]
for i in range(1900,2018):
    if i%4==0 and 1%100!=0:
        if i%400!=0:
            ptRunNian.append(i)
        else:
            sjRunNian.append(i)
print("普通闰年:",ptRunNian)
print("世纪闰年:",sjRunNian)

#2.分析以下数字的规律, 1 1 2 3 5 8 13 21 用Python语言编程实现输出,此为斐波那契数列 (考试题非常多次题目)
len=input("请输入斐波那契数列的长度:")
fbnq_list=[]
for i in range(0,int(len)):
    if i>1 :
        fbnq_list.append(fbnq_list[i-1]+fbnq_list[i-2])
    else:
        fbnq_list.append(1)
print(fbnq_list)

#3.给一组无规律的数据从大到小或从小到大进行排序list1=[2,6,9,10,18,15,1,88,34,22,95]  使用冒泡排序实现
list1=[2,6,9,10,18,15,1,88,34,22,95]
for i in range(0,list1.__len__()):
    for j in range(i+1,list1.__len__()-1):
        if list1[i]>list1[j]:
            list1[i]=list1[i]+list1[j]
            list1[j]=list1[i]-list1[j]
            list1[i]=list1[i]-list1[j]
print(list1)

# 4.如有两个list:a =['a','b','c','d','e'],b=[1,2,3,4,5]
# 将a中的元素作为key,b中的元素作为value合并为字典
a =['a','b','c','d','e']
b=[1,2,3,4,5]
c={}
for i in range(0,a.__len__()):
    c.setdefault(a[i],b[i])
print(c)

# 5.用你熟悉的方法帮我求出6-55之和?
sum=0
for i in range(6,56):
    sum+=i
print("6-55之和:",sum)

# 6.求出1/1 + 1/3 + 1/5……+1/99的和
sum=0.0
for i in range(1,100,2):
    sum+=1/i
print("1/1 + 1/3 + 1/5……+1/99的和:",sum)

# 7.用循环语句,计算2 - 10之间整数的循环相乘的值
value1=1
for i in range(2,11):
    value1*=i
print("2 - 10之间整数的循环相乘的值:",value1)

# 8.用for循环打印九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print(j,"*",i,"=",i*j,end="\t")
    print()

# 9.字符串aabbcdbaaabc,用熟悉的方法去除ab子串?
str1="aabbcdbaaabc"
str1=str1.replace("ab","")
print(str1)

# 10.求每个字符串中字符出现的个数如:helloworld
str1=input("请输入字符串:")
dict1={}
for i in str1:
    if i not in dict1:
        dict1.setdefault(i,1)
    else:
        dict1[i]=dict1[i]+1
print(dict1)

# 12.水仙花数:一个三位数,其按位立方之和等于该数本身,该数称为水仙花数。求出100-1000之间的水仙花数
# (其实,水仙花数是“自幂数”中的一种;自幂数:一个n位数,其按位数字的n次方之和,等于该数本身。
sxh_list=[]
ge=0
shi=0
bai=0
for i in range(100,1000):
    ge=int(i%10)
    shi=int((i/10)%10)
    bai=int(i/100)
    if i==(ge**3+shi**3+bai**3):
        print(ge**3, shi**3, bai**3, i, (ge**3 + shi**3 + bai**3))
        sxh_list.append(i)
print(sxh_list)

#通用水仙花数:字符串
def getSum(num):
    sum=0
    for i in range(0,str(num).__len__()):
        sum+=int(str(num)[i])**int(str(num).__len__())
    return sum

list1=[]
num=input("请输入一个数:")
for i in range(0,int(num)+1):
    if i==getSum(i):
        list1.append(i)
print(list1)

#通用水仙花数:递归
sum=0
list1=[]
def get_zms(num,sum,leng):   #获取自幂数
    if num==0:
        return sum

    sum+=(num%10)**leng
    return get_zms(num//10,sum,leng)
num=input("请输入一个数:")
for i in range(1,int(num)+1):
    leng = int(str(i).__len__())  # 获取长度
    if i==get_zms(i,sum,leng):      #判断i是否等于自幂数
        list1.append(i)
print(list1)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值