零基础入门学Python系列内容对应的所有编程练习题目 → \rightarrow →Python编程练习题目汇总。
- 编写程序:定义一个MyRev类,功能与reversed()相同。
# 写一个MyRev类,功能与reversed()相同(内置函数reversed(seq),是返回一个迭代器,是序列seq的逆序显示)
class MyRev:
def __init__(self, data):
self.data = data
self.index = len(data)
def __iter__(self):
return self
def __next__(self):
if self.index == 0:
raise StopIteration
self.index = self.index - 1
return self.data[self.index]
myRev = MyRev("Python")
for i in myRev:
print(i, end=' ')
>>>
n o h t y P
>>>
- 编写程序:写一个生成器,计算2000000以内的素数之和。
# 编写程序,计算2000000以内的素数之和
import math
def is_prime(number):#is_prime(素数判断)
if number > 1:
if number == 2:
return True
if number % 2 == 0:#将2以及所有合数因子排除掉
return False
for current in range(3, int(math.sqrt(number) + 1), 2):#直接从3起步,步长为2.在range()函数产生的序列是[3,5,7,9,...]
if number % current == 0:
return False
return True
return False
def get_primes(number):
while True:
if is_prime(number):
yield number
number += 1
def solve():
total = 2
for next_prime in get_primes(3): # 2是第一个素数,3是第二个素数,接下来靠+1往上走,靠素数判断方法判断是不是素数,是的话就累加
if next_prime < 2000000:
total += next_prime
else:
print(total)
return
if __name__ == '__main__':
solve()
>>>
142913828922
>>>
- 编写程序: 创建一个const模块,功能是让Python支持常量。
# 创建一个const模块,功能是让Python支持常量
# 该模块用于让Python支持常量操作
class Const:
def __setattr__(self, name, value):
if name in self.__dict__:
raise TypeError('常量无法改变!')
if not name.isupper():
raise TypeError('常量名必须由大写字母组成!')
self.__dict__[name] = value
import sys
sys.modules[__name__] = Const()
# 测试
import Const
Const.NAME = "Python"
print(Const.NAME)
try:
# 尝试修改常量
Const.NAME = "Pycharm"
except TypeError as Err:
print(Err)
try:
# 变量名需要大写
Const.name = "Python"
except TypeError as Err:
print(Err)
>>>
Python
常量无法改变!
常量名必须由大写字母组成!
>>>