zoukankan      html  css  js  c++  java
  • 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中,但不会同时出现在二者中)

  • 相关阅读:
    yii2增删改查及AR的理解
    yii2中关联查询
    yii2常用的migrate命令
    有线电视网
    选课
    没有上司的舞会
    [ZJOI2008]骑士
    【模板】树链剖分
    [ZJOI2008]树的统计
    [NOI2015]软件包管理器
  • 原文地址:https://www.cnblogs.com/xurui89/p/10505884.html
Copyright © 2011-2022 走看看