源自:Python大本营
本文约1000字,意见阅读5分钟。
100+编程练习帮大众容易学习Python,春节亦要抓紧学习哟~
春节马上就要到了,怎么能让自己在假期里不掉队?今天,给大众准备一个项目: 100+ 编程练习,这些题倘若能保持每日最少完成一道,必定能够帮大众容易 get Python 的编程技能。日前,这个项目已然得到了 2924 Stars,2468 Forks。
首要,这 100+ 练习题按照难易程度分为三个等级:Level 1、2 和 3。下面对怎样定义这三个 Level 进行了说明,大众能够结合自己的学习能力和实践经验进行选取。
Level 1:初级。刚入门 Python 或正在学有些基本课程的朋友们。一般包括 1 到 2 个类或函数的问题都能够处理,乃至答案都可能在有些教材中就能找到。
Level 2:中级。已然系统学习过 Python,并且已然有必定的编程背景的朋友们,能够处理包括 3 个及以上类或函数的问题,不外这些答案就在教材找不到了。
Level 3:高级:能够用 Python 中非常丰富的各样库、标准包或更高级的技术,结合数据结构和算法,来处理繁杂的问题。
其次,每题都有问题描述、提示和处理方法。大众必定要先独立完成,而后再看参考答案哦~
前 25 题中,Q1~5、22~25 都是 Level 1 的难度,Q6~17 为 Level 2,Q18~22 为 Level 3。大众正好利用这五道题学习、巩固一下基本,而后就起始准备挑战自己吧!
前五道题
下面先给出前五道题,其他的题目大众能够在 Github 上看到~
Question 1
Level 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
Question 2
Level 1
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.
Question 3
Level 1
Question:
With a given integral number n, write a program to generate a dictionary that contains (i, i*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()
Question 4
Level 1
Question:
Write a program which accepts a sequence of comma-separated numbers from console and generate a list and a tuple which contains every number.
Suppose the following input is supplied to the program:
34,67,55,33,12,98
Then, the output should be:
[34, 67, 55, 33, 12, 98]
(34, 67, 55, 33, 12, 98)
Hints:
In case of input data being supplied to the question, it should be assumed to be a console input.
tuple() method can convert list to tuple
答案要点
Question 5
Level 1
Question:
Define a class which has at least two methods:
getString: to get a string from console input
printString: to print the string in upper case.
Also please include simple test function to test the class methods.
Hints:
*Solution 1*
l=[]
for i in range(2000, 3201):
if (i%7==0) and (i%5!=0):
l.append(str(i))
print ,.join(l)
___________________________________
*Solution 2*
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
x=int(raw_input())
print fact(x)
___________________________________
*Solution 3*
n=int(raw_input())
d=dict()
for i in range(1,n+1):
d[i]=i*i
print d
___________________________________
*Solution 4*
values=raw_input()
l=values.split(",")
t=tuple(l)
print l
print t
___________________________________
*Solution 5*
class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
self.s = raw_input()
def printString(self):
print self.s.upper()
strObj = InputOutString()
strObj.getString()
strObj.printString()
Use __init__ method to construct some parameters
更加多题目能够查阅以下Github位置:
作者:zhiwehuhttps://github.com/zhiwehu/Python-programming-exercises/blob/master/100%2B%20Python%20challenging%20programming%20exercises.txt
— 完 —
关注清华-青岛数据科学科研院官方微X公众平台“THU数据派”及姊妹号“数据派THU”获取更加多讲座福利及优秀内容。