Python编程练习(八):71 - 73

零基础入门学Python系列内容对应的所有编程练习题目 → \rightarrow →Python编程练习题目汇总

  1. 编写程序:定义一个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
  >>>

  1. 编写程序:写一个生成器,计算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
  >>>

  1. 编写程序: 创建一个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
  常量无法改变!
  常量名必须由大写字母组成!
  >>>

上一篇:面试宝典:送上 71 道Java并发编程题(含全部参考答案)


下一篇:npm包的上传npm包的步骤,与更新和下载步骤