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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一门十分流行的编程语言,它简单易学、代码简洁、功能强大。完成一百道Python练习题是提高Python编程能力、加深对Python语言的理解的一种很好的方式。 这一百道练习题包括了从基础语法到高级应用等各方面的知识。比如,学会了条件语句、循环语句、函数、列表、字典等基本知识后,就可以尝试一些更加高级的练习题,如利用Python进行数据分析、可视化等。 而通过完成练习题,我们可以提高编程的思维能力,如算法思维、问题分析和编程细节等方面的能力。同时还可以加深对Python语言的各种库、模块的了解和应用。 在做练习题过程中,还需要注意遵守代码规范,编写优雅的代码,这不仅能提高代码的可读性,也是在实际工作中需要遵守的基本要求之一。 总之,完成一百道Python练习题虽然是一项比较艰巨的任务,但是通过不懈努力,能够提高Python编程能力、加深对Python语言的理解,为日后的编程工作、学习等提供坚实的基础。 ### 回答2: 一百道Python练习题是一份很好的学习和练习材料,可用于巩固Python编程语言的基础知识,提高编程技能。这些练习题涵盖了Python编程的各个方面,如标准库的使用、函数的定义、条件语句、循环语句、字符串操作、列表操作、字典操作等等。 通过完成这些练习题,可以加深对不同Python概念的理解,更多地掌握Python的语法和特性,进而提升解决问题的能力。这些练习题也可以用于检查和评估学习者的编程水平,以便进一步调整学习计划和课程内容,更好地满足学习者的需求。 在完成这些练习题时,建议先仔细阅读题目要求和提示,尝试自己完成,如遇到困难可寻求相关资料和帮助。同时,还应注重代码的质量和可读性,考虑测试和调试的重要性。 总之,通过完成这些Python练习题,可以提高自己的编程能力和实践经验,进而更好地应对实际编程问题。 ### 回答3: 一百道Python练习题是很好的练习机会,对于初学者和有经验的开发者都有用。通过解决这些题目,可以提高对Python语言的理解和掌握程度,加深对编程逻辑和算法的认识,锻炼编程思维,提高代码实现能力。 这些题目从简单到困难,涵盖了Python的各个领域,包括基本语法、列表、字典、函数、模块、文件处理、正则表达式等。 题目多样化,涉及到数学、计算机科学以及实际编程中常见的问题。解决这些问题需要分析题目,理解题意,寻找合适的解决方案,写出清晰易读的代码。 解决这些练习题不仅有助于提高Python编程能力,还有利于增强编程的实际应用能力。在解决每一个问题的过程中,也需要考虑到实际开发中的各种情况,并尝试更多的练习和尝试。 总之,一百道Python练习题是很有用的编程练习资源,对于任何想要提高自己Python编程能力的人来说都是值得尝试的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值