Question 1
Question:
Write a program which will find all such numbers which are divisible by 7 but are not a multiple of 5, between 2000 and 3200 (both included).The numbers obtained should be printed in a comma-separated sequence on a single line.
Hints:
Consider use range(#begin, #end) method.b
for i in range(2000, 3200):
if i%7==0 and i%5!=0:
print(i,end=',')
print("\b")
summary:
自己写的时候没有使用\b,导致最后的结尾是以逗号结尾。\b的作用是退格
Question 2
Question:
Write a program which can compute the factorial of a given numbers.The results should be printed in a comma-separated sequence on a single line.Suppose the following input is supplied to the program: 8 Then, the output should be:40320
Hints:
In case of input data being supplied to the question, it should be assumed to be a console input.
n = int(input())
Result = 1
for i in range(1,n+1):
# print(i)
Result = Result * i
print(Result)
示例答案:
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
x = int(raw_input())
print fact(x)
summary:
其实用函数的方法会更好一点,而且在示例里的raw_input()输入的方法是Python2.X的方法。
Question 3
Question:
With a given integral number n, write a program to generate a dictionary that contains (i, i x i) such that is an integral number between 1 and n (both included). and then the program should print the dictionary.Suppose the following input is supplied to the program: 8
Then, the output should be:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}
Hints:
In case of input data being supplied to the question, it should be assumed to be a console input.Consider use dict()
个人解法
def fuc(x):
key = []
value = []
for i in range(1, x+1):
key.append(i)
value.append(i*i)
return dict(zip(key, value))
x = int(input())
print(fuc(x))
好的解法
n = int(input())
ans={i : i*i for i in range(1,n+1)}
print(ans)
summary:
两个列表合成字典
===> list X and list Y
===>dict(zip(X,Y))
zip():zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
网友评论