2019-08-24

2019-08-24  本文已影响0人  木马音响积木

暑假第二期,第8部分,一步一步来

从简单到复杂,从一维到多维


一步一步上台阶.jpg

当读到这个文章的时候,我们假设你已经能够写出,第一道题了。
从1+2+3 不断累加下去,到了141 ,得到10011,终于大于1万了。

# i 记录当前累加到多少了
i = 0 #必须一个变量赋值占一行
# sum2 记录当前的累加总和
sum2 = 0

while sum2 < 10000:  #冒号 千万别忘记
    i = i + 1 #缩进 千万别忘记
    print(i)  # 观察变量的变化
    sum2 = sum2 + i       
    print(sum2)    # 观察变量的变化

print("跳出循环了")
print(i) 
print(sum2)

当我们玩游戏的时候,刚刚打败一个怪兽,就想给我一个再强一点的,刚才的那个怪兽太菜了,哈哈。傲娇的姿态摆好

2、现在难度增加一个台阶,
当求得i (141)后,sum2 继续向后累加i(141)次,输出累加和
想起来了,老师上课说的递推
第二个问题的答案,依靠第一个问题的结果,遇到这种问题,坚持一步一步来;

#接上面程序
#设置取值范围
for k in range(i+1,i+i+1): # k 从142 到282
    sum2 = sum2+ k
    print(k)
print(sum2)

sum2 现在是39903 ,

3、再上一个台阶,求出 从2 到 这个累加和 (也就是39903)之间的所有素数,放到列表里,打印输出列表,并打印输出列表长度,还有打印列表的最后一个元素;
继续写程序,接上面

lower =2   #挤压,收缩边界

upper = sum2    # 接上第二步得到的数 ,39903

#演示函数的使用有效降低缩进层数
def is_sushu(aa):  #aa是参数
    """本函数判断一个整数是否为素数,
       如果是,返回值为True
    """
    for i in range(2,aa):  #i 取值最大=aa-1
        if (aa % i) == 0:
            break
    else:               #等在学校门口的妈妈
        return True # aa是素数

#准备个列表,用于输出
lala=[]
for num in range(lower,upper + 1):
    # num大于 1 并且是素数时
    if num > 1 and is_sushu(num):
        #print(str(num)+"是素数")
        lala.append(num) #是素数就装入列表lala

print(lala)
print(len(lala))  #4196
print(lala[-1])    #39901

4、现在由于列表的数据较多,(4196个),请序列化,写入一个文件,文件名为lala.pkl ,以后写程序调用时,直接打开这个文件即可。

如果程序中包含一个有4000多个元素的列表,可想而知,程序读起来,太差了。
继续写代码,接上面

import pickle   #最好放到程序的最前头
import sys,os
#该文件放在你的当前目录中
print(os.getcwd()) 
output = open('lala.pkl', 'wb')

# Pickle lala 把lala 列表,写入lala.pkl 文件中

pickle.dump(lala, output)  #调用dump函数

output.close()  #打开的文件,必须关闭
lalawenjian.png

写到硬盘上去了,满满的成就感。

5、假设取到别人给你的序列化文件,是个列表,求出列表的累加和

import  pickle,pprint

#使用pickle模块从文件中重构python对象
pkl_file = open('lala.pkl', 'rb')

list2 = pickle.load(pkl_file)
#pprint.pprint(data1)

#把这些素数累加起来
sum55 = 0

for gg in list2:  #列表的遍历
    sum55 = sum55 + gg
print(sum55) #78890925 最后结果

pkl_file.close()

只所以,没有打印,如果打印了,会是长长的 一大串,
程序本来可以这么短,所以,序列化很有用。特别是列表有几十万数据以上时。

好了,同学们,我们爬上5楼了,你的计算结果对了么?
一步一步来,程序都理解了么?
学会编程了么?遇到多一维的自己了吗?

不要,不要记住, ,你多学一样本事,就少说一句求人的话!

其实,老师一直相信,一步一步,带着你,可以爬上小山,看见更美的景色。

山顶看日出.jpg
上一篇下一篇

猜你喜欢

热点阅读