python验证码生成小甲鱼_[Python]小甲鱼Python视频第049课(乱入:生成器)课后题及参考解答...

# -*- coding: utf-8 -*-

"""

Created on Sun Mar 24 21:54:53 2019

@author: fengs

"""

"""

测试题(笔试,不能上机哦~):

0. 通常,一般的函数从第一行代码开始执行,并在什么情况下结束?

return 、异常

1. 什么是协同程序?

可以运行的独立函数调用,函数可以暂停,挂起,在需要的时候从程序离开的地方继续或者重新开始

2. 生成器所能实现的任何操作都可以由迭代器来代替吗,为什么?

可以,生成器是一种特殊的迭代器

3. 将一个函数改造为生成器,说白了就是把什么语句改为 yield 语句?

return

4. 说到底,生成器的最大作用是什么?

保存上一次迭代计算的环境,让下一次生成迭代的条件从上一次的结果开始

5. 如下,get_prime() 是一个获得素数的生成器,请问第 2 行代码 while True 有何作用?

def get_primes(number):

while True:

if is_prime(number):

yield number

number += 1

保证生成器下次被调用时遇到的是新的yield,保证该生成器不结束,只要调用next烦烦噶就有值

"""

"""

0. 要求实现一个功能与 reversed() 相同(内置函数 reversed(seq) 是返回一个迭代器,是序列 seq 的逆序显示)的生成器。

"""

def myRev(str_value):

while True:

if str_value !="":

yield str_value[-1]

str_value = str_value[:-1:]

else:

break

for i in myRev("FishC"):

print(i, end='')

"""

1. 10 以内的素数之和是:2 + 3 + 5 + 7 = 17,那么请编写程序,计算 2000000 以内的素数之和?

"""

def isPrime(number):

if number <= 1:

return False

i = 2

while i*i <= number:

if number % i == 0:

return False

i += 1

return True

print('\n')

print(sum( x for x in range(2000000) if isPrime(x) == True ))

"""

def fabs():

fn0 = 0

fn1 = 1

while True:

fn0,fn1 = fn1,fn0+fn1

yield fn0

for i in fabs():

print(i)

if i > 100:

break

e = ( i for i in range(10)) #括号就是生成器推导式

print(next(e))

"""

#print(sum( i for i in range(101)))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值