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("