python学习1

菜鸟教程例题

在其中我有些算了一下运行时间,方法如下:

import time
start =time.clock()
# 程序
end = time.clock()
# 其中end-start就是程序运行的时间,单位是秒。
print('Running time: %s Seconds'%(end-start))
  • 题目:1、2、3、4组成不重复的三位数
def mo_1(): 
    a = []
    for i in range(1,5):
        for j in range(1,5):
            for k in range(1,5):
                if i != j and j != k and k != i:
                    a.append(i * 100 + j *10 +k)
    print(a)
  • 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
    这道题我最先想到的是if语句,用分支计算。但是答案给出了更加简洁的方法,很棒,可以参考一下这种方法,类似的都可以用这种方法解。
def mo_2():
    i = int(input())
    a = (1000000,600000,400000,200000,100000,0)                    
    b = (0.01,0.015,0.03,0.05,0.075,0.1)
    r = 0
    for idx in range(0,6):
        if i>a[idx]:
            r+=(i-a[idx])*b[idx]
            i=a[idx]
    print(r)
  • 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
    程序分析:
    假设该数为 x。
    1、则:x + 100 = n^2, x + 100 + 168 = m^2
    2、计算等式:m^2 - n^2 = (m + n)(m - n) = 168
    3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
    4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
    5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
    6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
    7、接下来将 i 的所有数字循环计算即可。
    这道题其实我最先用的是穷举,因为比较简单,我比较了一下1和2两种方法的时间,发现2时间更短
def mo_3(ans = 1):
    if ans == 1:
        # Running time: 0.015090500000000118 Seconds
        for i in range(-100,10000):
            if (i + 100) ** 0.5 == int((i + 100) ** 0.5) and (i + 100 + 168) ** 0.5 == int((i + 100 + 168) ** 0.5):
                print(i,end='')
    elif ans == 2:
        # Running time: 0.0014683999999998143 Seconds
       for i in range(1,85):
            if 168 % i == 0:
                j = 168 / i
                if  i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :
                    m = (i + j) / 2
                    n = (i - j) / 2
                    x = n * n - 100
                    print(x,end='')

  • 题目:输入某年某月某日,判断这一天是这一年的第几天?
    用split()方法只用一个input就可以解决多个输入
import datetime
def mo_4(ans):
    if ans == 2:
        year, month, day = [int(i) for i in input().split()]
        print("-" * 20)
        result = datetime.datetime(year, month, day)
        # 用来格式化时间,%j 用来表示天数
        print(result.strftime("%j"))
  • 题目:输入三个整数x,y,z,请把这三个数由小到大输出。
def mo_5(ans):
    print(sorted([int(i) for i in input().split()]))
  • 斐波那契数列
    斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
def mo_6(n,ans):
    if ans == 1:
        # 当n=1000时Running time: 0.32044379999999983 Seconds
        start =time.clock()
        a = [0,1]
        for i in range(2,n):
            a.append(a[i-1] + a[i-2])
        print(a)
        end = time.clock()
        print('Running time: %s Seconds'%(end-start))
    elif ans == 2:
        # 当n=1000时Running time: 0.02545049999999982 Seconds
        start =time.clock()
        a,b = 1,1
        for i in range(n-1):
            a,b = b,a+b
        print(a)
        end = time.clock()
        print('Running time: %s Seconds'%(end-start))
    elif ans == 3:
        if n ==1 or n ==2:
            return 1
        else :
            return mo_6(n-1,ans = 3) + mo_6(n-2,ans = 3) 
  • 输出 9*9 乘法口诀表。
def mo_7():
    for i in range(1,10):
        print()
        for j in range(1,i+1):
            print('%d * %d = %d'%(j,i,i*j),end='    ')
  • 倒计时
def mo_8():
    for x in range ( 5,-1,-1 ) :               #  生成倒计时秒数
        mystr = '倒计时' + str( x ) + '秒'       #  str()函数强制转化字符型      
        print ( mystr, end = '' )               #  end='' 不换行
        print ( "\b"*(len(mystr)*2), end = '' , flush = True )     
        time.sleep ( 1 )
  • 暂停一秒输出,并格式化当前时间。
def mo_9():
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
    # 暂停一秒
    time.sleep(1)
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容

  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 6,952评论 0 9
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,339评论 0 2
  • 计算机二级C语言上机题库(南开版) 1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平...
    MrSunbeam阅读 6,336评论 1 42
  • 50道JAVA基础编程练习题 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    微尘_8957阅读 2,194评论 0 2
  • 挂壁公路是太行山区一种最有特色的公路,是在悬崖峭壁上开凿而出的奇险公路。交通专家称,此类工程奇险、艰难,在中国筑路...
    大浪淘沙sha阅读 157评论 0 0