Python编程题给你练(附答案)

这是一个包含25道不同等级Python编程题目的集合,从基础到进阶,涵盖数字操作、字符串处理、类与对象、列表推导、文件操作等多个方面,旨在提升Python编程能力。
摘要由CSDN通过智能技术生成

Q1~8 都是 Level 1 的难度,Q9~20 为 Level 2,Q21~25 为 Level 3

题1
1级
问题:编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。
提示:考虑使用range(#begin, #end)方法

解决方案:

l=[]
for i in range(2000,3201):
    if (i%7==0)&(i%5!=0):
        l.append(str(i))
print(",".join(l))

'''
输出答案:
2002,2009,2016,2023,2037,2044,2051,2058,2072,2079,2086,2093,2107,2114,2121,2128,2142,2149,2156,2163,2177,2184,2191,2198,2212,2219,2226,2233,2247,2254,2261,2268,2282,2289,2296,2303,2317,2324,2331,2338,2352,2359,2366,2373,2387,2394,2401,2408,2422,2429,2436,2443,2457,2464,2471,2478,2492,2499,2506,2513,2527,2534,2541,2548,2562,2569,2576,2583,2597,2604,2611,2618,2632,2639,2646,2653,2667,2674,2681,2688,2702,2709,2716,2723,2737,2744,2751,2758,2772,2779,2786,2793,2807,2814,2821,2828,2842,2849,2856,2863,2877,2884,2891,2898,2912,2919,2926,2933,2947,2954,2961,2968,2982,2989,2996,3003,3017,3024,3031,3038,3052,3059,3066,3073,3087,3094,3101,3108,3122,3129,3136,3143,3157,3164,3171,3178,3192,3199
'''

题2
1级
问题:编写一个可以计算给定数的阶乘的程序。结果应该以逗号分隔的顺序打印在一行上。假设向程序提供以下输入:8
则输出为:40320
提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。
解决方案一:

a=1
n=int(input("请输入一个定数:"))
for i in range(1,n+1):
    a=a*i
print(a)

'''
请输入一个定数:8
40320
'''

解决方案二:递归法

def fact(x):
    if x==0 or x==1:
        return 1
    return x*fact(x-1)
n=int(input("请输入一个定数:"))
print(fact(n))

'''
请输入一个定数:8
40320
'''

题3
1级
问题:使用给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含)。然后程序应该打印字典。
假设向程序提供以下输入:8
则输出为:
{1:1,2:4,3:9,4:16,5:25,6:36,,7:49,8:64}
提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。考虑使用dict类型()
解决方案:

n=int(input("请输入一个数:"))
d=dict()
for i in range(1,n+1):
    d[i]=i*i
print(d)

'''
请输入一个数:8
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}
'''

题4
1级
问题:编写一个程序,该程序接受控制台以逗号分隔的数字序列,并生成包含每个数字的列表和元组。假设向程序提供以下输入:
34岁,67年,55岁,33岁,12日,98年
则输出为:['34', '67', '55', '33', '12', '98']
               ('34', '67', '55', '33', '12', '98')
提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。方法可以将列表转换为元组
解决方案:

import re
values=input("请输入一组数字序列:")
l=values.split(",")
k=re.findall(r'[0-9]+',values)  #提取数字0-9
t=tuple(k)
print(k,t)

'''
请输入一组数字序列:34岁,67年,55岁,33岁,12日,98年
['34', '67', '55', '33', '12', '98'] ('34', '67', '55', '33', '12', '98')
'''

题5
1级
问题:定义一个至少有两个方法的类: getString:从控制台输入获取字符串   printString::打印大写母的字符串。
还请包含简单的测试函数来测试类方法。
提示:使用_init__方法构造一些参数
解决方案:

class InputOutString(object):
    def _init_(self):
        self.s=""
    def getString(self):
        self.s=input("请输入字符串:")
    def printString(self):
        print(self.s.upper())
strObj=InputOutString()
strObj.getString()
strObj.printString()

'''
请输入字符串:shfhiAhfjkS
SHFHIAHFJKS
'''

题6
1级

题:写一个可以计算数字平方值的方法

提示: 使用**运算符

def square_(num):
    return num**2
square_(4)

'''
16
'''

题7
1级

题:Python有许多内置函数,如果您不知道如何使用它,您可以在线阅读文档或查找一些书籍。 但是Python为每个内置函数都有一个内置的文档函数。
     请编写一个程序来打印一些Python内置函数文档,例如abs(),int(),raw_input()
     并为您自己的功能添加文档

print(abs.__doc__)
print("-"*50)
print(int.__doc__)
print("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值