python学习--练习题6、7、8--九九乘法表,前两项相加问题,素数输出问题

练习6

#输出9*9乘法表

s=(i*n for i in range(1,10) for n in range(1,10))
print(list(s))

练习7

#题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

一共经历了几个月=int(input("几月:"))
def 多少只兔子():
    s=[1,1]
    for i in range(0,一共经历了几个月+1):
        t=s[i+1]+s[i]
        s.append(t)
        i+=1
        continue
    print(s[一共经历了几个月-1]*2)
多少只兔子()




返回值:几月:23
57314

体会:我在 t=s[i+1]+s[i]

                   s.append(t)这个代码这花费了很长时间,总是用s[i+2]=s[i+1]+s[i]来跑程序,总是提示我超了,我干脆就用t来表示,这样append的时候也方便很多。

练习8

#判断101-200之间有多少个素数,并输出所有素数。

#python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素
s=set(( n for n in range (101,201) for k in range (2,n) if n%k==0 ))
t=set((n for n in range(101,201)))
print(sorted(t-s))


返回值:[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]

体会:set用于解包,sorted用于排列

我在第一行代码花费时间最多,主要是没有加set时,导致输出都是相同的数据(真的是好烦啊!),用了set不仅可以删除还可以加加减减,减值就是元组必备,神清气爽!

同时,http://blog.csdn.net/business122/article/details/7541486# 有详细的符号说明

a = t | s          # t 和 s的并集

b = t & s          # t 和 s的交集

c = t – s          # 求差集(项在t中,但不在s中)

d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)

原文地址:https://www.cnblogs.com/xurui89/p/10505884.html