• python小知识点


    问题:求列表中每个元素的元素次方之和
    >>> a=[1,2,3,4]
    >>> k=len(a)
    第一种解法
    #    s=0
    #    for x in a:
    #        s+=x**k
    第二种解法
    列表解析,每个元素的元素数次方
    >>> [x**k for x in a]
    [1, 16, 81, 256]

    求列表元素之和
    >>> sum([x**k for x in a])
    354

    水仙花数

    一。先在python交互式中寻找算法
    >>> 12345 %10
    5
    >>> 1234 %10
    4
    >>> 12345/10
    1234
    >>> 1234/10
    123
    >>>

    >>> k=12345
    >>> while k>0:
    ...     print k%10
    ...     k/=10
    ...
    5
    4
    3
    2
    1

    二。再在脚本中设计具体的实现,加判断,加循环,加输入与输出。
    fgy@fgy-QTH6:~/Documents/python$ cat num.py def isA(n): a=[] t=n while t>0: a.append(t%10) t/=10 k=len(a) return sum(x**k for x in a)==n # s=0 # for x in a: # s+=x**k # return s==n begin=raw_input('please input start num: ') end=raw_input('please input end num: ') for x in range(int(begin),int(end)): if isA(x):print x

    三。执行时验证。
    fgy@fgy-QTH6:~/Documents/python$ python num.py
    please input start num: 100
    please input end num: 1000
    153
    370
    371
    407

    找出不重复的三位数,下面这个程序使用了3重for循环,如果是4位,5位就不太适用了

    num is : 986
    num is : 987
    count 648
    fgy@fgy-QTH6:~/Documents/python$ cat num2.py
    #encoding=utf-8
    #a: 1-9
    #b: 0-9
    #c: 0-9
    
    l=range(10)
    count=0
    for a in l[1:]:
        for b in l:
            if a==b:continue    #过滤a!=b的情况
            for c in l:
                if c!=a and c!=b:    #过滤b!=c,c!=a的情况,得到了互不相等的情况
                    print 'num is : %d%d%d' %(a,b,c)
                    count+=1
    print 'count',count
  • 相关阅读:
    Prism之12345
    Struts2注解学习1
    模拟Spring依赖注入
    Spring的IOC注解学习
    Hibernate注解学习1
    Redis源码分析(二十六) slowLog和hyperloglog
    做优秀产品经理所需的7种素质
    程序员学习英语
    PL/SQL Developer记住密码设置
    oracle11g,安装及net Manager的配置
  • 原文地址:https://www.cnblogs.com/createyuan/p/5745932.html
Copyright © 2020-2023  润新知