这是一个github项目,fork 6.2k,star 19.3k。
原项目是英文的,我用有道翻译,过分离谱的地方稍微修改一下。慢慢学习慢慢做,努力提升自己的编程水平。
原地址:Python-programming-exercises/100+ Python challenging programming exercises for Python 3.md at master · zhiwehu/Python-programming-exercises · GitHub100+ Python challenging programming exercises. Contribute to zhiwehu/Python-programming-exercises development by creating an account on GitHub.https://github.com/zhiwehu/Python-programming-exercises/blob/master/100%2B%20Python%20challenging%20programming%20exercises%20for%20Python%203.md题目分三级,level 1、level 2、level 3
1级新手,2级中等水平,3级高手。
'''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.'''
'''写一个程序,找出所有能被7整除但不是5倍数的数, 从2000到3200(都包括在内)。获得的数字应该以逗号分隔的顺序打印在一行上。''' 
代码:
lista = []
for i in range(2000,3201):
    if i % 7 == 0 and i % 5 != 0:
        lista.append(str(i))   # append()是列表的方法,字符串没有。
# print(lista)
print(','.join(lista)) '''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''' '''写一个程序,可以计算给定数字的阶乘。 结果应该以逗号分隔的顺序打印在一行上。 假设向程序提供以下输入: 8 然后,输出应该是: 40320 '''
def factorial(n):
    sum = 1
    for i in range(1,n+1):
        sum *= i
    return sum
n = int(input('请输入想要计算阶乘的数:'))
fac = factorial(n)
print(fac)'''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}'''
'''对于给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,使其为1到n之间的整数(两者都包含)。 然后程序应该打印字典。  
假设向程序提供以下输入:  
8  
然后,输出应该是:  
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}  '''
 
def square(n):
    squ = dict()
    for i in range(1,n+1):
        squ[i] = i*i
    return squ
n = int(input('请输入n的值:'))
squdic = square(n)
print(squdic)'''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')'''
'''编写一个程序,从控制台接收一个逗号分隔的数字序列,并生成包含每个数字的列表和元组。  
假设向程序提供以下输入:  
34,67,55,33,12,98  
然后,输出应该是:  
['34', '67', '55', '33', '12', '98']
('34', '67', '55', '33', '12', '98')''' 
nums = input('请输入数字序列,用逗号分隔,按q结束:')
numl = list(nums.split(','))
numt = tuple(nums.split(','))
# numl = nums.split(',')
# numt = tuple(nums)   # 这两句是答案的,但是错的,会将字符串的每一个字符都打散变成元组
print(numl)
print(numt)'''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.''' '''定义一个至少有两个方法的类: getString:从控制台输入获取一个字符串 printString:打印大写字符串。 也请包含简单的测试函数来测试类的方法。 '''
class IOString(object):
    def __init__(self):
        self.stra = ''
    def getString(self):
        self.stra =  input('请输入一个字符串:')
    def printString(self):
        print(self.stra.upper())
str1 = IOString()
str1.getString()
str1.printString()待续……









