我是靠谱客的博主 羞涩小土豆,最近开发中收集的这篇文章主要介绍python练习题(一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。

例如:153是一个“水仙花数”,因为 153 是个 3位数,而13+53+3**3==153。

输入一个正整数max,输出100到max之间的所有水仙花数(包括max)。

max = int(input())
for i in range(100, max+1):
    n = len(str(i))
    a = []
    sum = 0
    for j in range(n):
        a.append((i//10**j)%10)
        sum = sum + a[j]**n
    if sum == i:
        print(i)

2、输入两个字符串,输出两个字符串集合的并集。

为保证输出结果一致,请将集合内元素排序之后再输出,

如对于集合aset,可输出sorted(aset)。

str1 = input()
str2 = input()
str = list(sorted(str1 + str2))
fn = []
for i in str:
    if not i in fn:
        fn.append(i)
print(fn)

3、与7相关的数:如果一个正整数,它能被7整除或者它的十进制表示法中某个位数上的数字为7,则称之为与7相关的数。现在我们给定一个正整数n(n<1000),求所有小于等于n的与7无关的正整数的平方和。

n = int(input())
sum = 0
for i in range(n+1):
    P = 1
    a = []
    l = len(str(i))
    for k in range(l):
        a.append((i // 10 ** k) % 10)
    if i%7 == 0:
        continue
    else:
        for j in a:
            if j == 7:
                P = 0
                break
    if P != 0:
        sum = sum + i**2
print(sum)

4、打印完数:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6 = 1+2+3。输入一个正整数n(n<1000),输出1到n之间的所有完数(包括n)。

n = int(input())
for i in range(1, n+1):
    sum = 0
    for j in range (1, i):
        if i % j == 0:
            sum = sum + j
    if sum == i:
        print(i)

5、打印一个n层(1<n<20)金字塔,金字塔由“+”构成,塔尖是1个“+”,下一层是3个“+”,居中排列,以此类推。

注意:每一行的+号之后均无空格,最后一行没有空格。

n = int(input())
for i in range(1, n+1):
    kong = int(((2*n-1)-(2*i-1))/2)
    jia = 2*i-1
    print(' '*kong, end='')
    print('+'*jia)

6、给一个5位数,判断它是不是回文数,是则输出yes,不是则输出no。

例如12321是回文数,它的个位与万位相同,十位与千位相同。

n = input()
if n[0] != n[4]:
    print("no")
elif n[1] != n[3]:
    print("no")
else:
    print("yes")

7、输入一个列表alist,要求列表中的每个元素都为正整数且不超过10;

将列表中的奇数变为它的平方,偶数除以2后打印新的列表(新的列表中所有元素仍都为整数)。

alist = list(map(int, input().split()))
blist = []
for i in alist:
    if i % 2 == 1:
        i = i * i
        blist.append(i)
    else:
        i = int(i / 2)
        blist.append(i)
print(sorted(blist))

8、给定一个大于2的正整数n,打印出小于n(不包括n且n不大于100)的所有素数。

要求将符合条件的输出填入一个列表中,打印的结果为该列表。

n = int(input())
alist = []
for i in range(2, n):
    for j in range(2, i):
        if i % j == 0:
            break
    else:                  #要满足所有循环里的条件的情况下,else很好用
        alist.append(i)
print(alist)

9、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第n天(<1<n<11)早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

n = int(input())
sum = 1
for i in range(1, n):
    sum = (sum + 1) * 2
    i = i + 1
print(sum)

10、已知斐波拉契数列的前两项都是1,求第n项的值。

def fbnq(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        temp1 = 0
        temp2 = 1
        for i in range(2, n+1):
            N = temp1 + temp2
            temp1 = temp2
            temp2 = N
    return N
n = int(input(""))
print(fbnq(n))

题目来源:https://www.icourse163.org/learn/PKU-1003479006?tid=1461777464#/learn/announce

最后

以上就是羞涩小土豆为你收集整理的python练习题(一)的全部内容,希望文章能够帮你解决python练习题(一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部