【python】練習(xí)-到高級(jí)特性

  1. 請(qǐng)打印出以下變量的值:
n = 123
f = 456.789
s1 = 'Hello, world'
s2 = 'Hello, \'Adam\''
s3 = r'Hello, "Bart"'
s4 = r'''Hello,
Lisa!'''
print(%d%f%s%s%s%s

怎樣故意讓它沒(méi)空格?
print(n,f,s1) 會(huì)有空格
print(n+f+s1) 類型不同不能加 unsupported operand type(s)
方法:
print("%d%.3f%s%s%s%s" % (n,f,s1,s2,s3,s4))
print(n,f,s1,s2,s3,s4,sep='')
print(n,f,s1,s2,s3,s4,sep='\n')

Python標(biāo)準(zhǔn)庫(kù):內(nèi)置函數(shù)print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
關(guān)鍵字參數(shù)sep是實(shí)現(xiàn)分隔符,比如多個(gè)參數(shù)輸出時(shí)想要輸出中間的分隔字符;關(guān)鍵字參數(shù)end是輸出結(jié)束時(shí)的字符,默認(rèn)是換行符\n;關(guān)鍵字參數(shù)file是定義流輸出的文件,可以是標(biāo)準(zhǔn)的系統(tǒng)輸出sys.stdout,也可以重定義為別的文件;參數(shù)flush是立即把內(nèi)容輸出到流文件,不作緩存。

  1. 小明的成績(jī)從去年的72分提升到了今年的85分,請(qǐng)計(jì)算小明成績(jī)提升的百分點(diǎn),并用字符串格式化顯示出'xx.x%',只保留小數(shù)點(diǎn)后1位
# -*- coding: utf-8 -*-
s1 = 72
s2 = 85
r = (s2-s1)/s2*100
print('%.1f%%' % r)
  1. 請(qǐng)利用Python內(nèi)置的hex()函數(shù)把一個(gè)整數(shù)轉(zhuǎn)換成十六進(jìn)制表示的字符串:
# -*- coding: utf-8 -*-
n1 = 255
n2 = 1000
print(hex(n1),hex(n2))

注意hex函數(shù)不能調(diào)用str字符串,可能需要int()一下

  1. 請(qǐng)定義一個(gè)函數(shù)quadratic(a, b, c),接收3個(gè)參數(shù),返回一元二次方程:ax2 + bx + c = 0 的兩個(gè)解。
# -*- coding: utf-8 -*-
import math
def quadratic(a, b, c):
    delta=b*b-4*a*c
    if delta < 0:
        y='無(wú)解'
    else:
        y=((-b+math.sqrt(delta))/(2*a),(-b-math.sqrt(delta))/(2*a))
    return y
# 測(cè)試:
print(quadratic(2, 3, 1)) # => (-0.5, -1.0)
print(quadratic(1, 3, -4)) # => (1.0, -4.0)

注意if、elif、else后面的冒號(hào)不要忘記

  1. 漢諾塔的移動(dòng)可以用遞歸函數(shù)非常簡(jiǎn)單地實(shí)現(xiàn)。
    請(qǐng)編寫(xiě)move(n, a, b, c)函數(shù),它接收參數(shù)n,表示3個(gè)柱子A、B、C中第1個(gè)柱子A的盤(pán)子數(shù)量,然后打印出把所有盤(pán)子從A借助B移動(dòng)到C的方法
def move(n, a, b, c):
    if n==1:
        print(a,'->',c)
    else:
        move(n-1,a,c,b)
        move(1,a,b,c)
        move(n-1,b,a,c)
# 期待輸出:
# A --> C
# A --> B
# C --> B
# A --> C
# B --> A
# B --> C
# A --> C
move(3, 'A', 'B', 'C')
  1. 請(qǐng)修改列表生成式,通過(guò)添加if語(yǔ)句保證列表生成式能正確地執(zhí)行:
# -*- coding: utf-8 -*-
L1 = ['Hello', 'World', 18, 'Apple', None]
L2 = [x for x in L1 if isinstance(x,str) is True]
# 期待輸出: ['hello', 'world', 'apple']
print(L2)

注意True首字母大寫(xiě)

  1. 楊輝三角
# -*- coding: utf-8 -*-
def triangles():
    g = [1]
    yield g
    g = g.append(0)
    g = [g[n-2]+g[n-1] for n in range(len(g))]
# 期待輸出:
# [1]
# [1, 1]
# [1, 2, 1]
# [1, 3, 3, 1]
# [1, 4, 6, 4, 1]
# [1, 5, 10, 10, 5, 1]
# [1, 6, 15, 20, 15, 6, 1]
# [1, 7, 21, 35, 35, 21, 7, 1]
# [1, 8, 28, 56, 70, 56, 28, 8, 1]
# [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
n = 0
for t in triangles():
    print(t)
    n = n + 1
    if n == 10:
        break

報(bào)錯(cuò):object of type 'NoneType' has no len()
g = g.append(0)改成g.append(0)
因?yàn)閍ppend()沒(méi)有返回值,所以g=None
不報(bào)了,但是輸出[1]而已
yield g 前忘了加上while True: 輸出

[1]
[1, 1]
[1, 1, 2]
[2, 1, 2, 3]
...

不對(duì),看來(lái)for n in range() n是從0開(kāi)始的
改成 g = [g[n]+g[n-1] for n in range(len(g))]
成功!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,906評(píng)論 0 33
  • Python 是一種相當(dāng)高級(jí)的語(yǔ)言,通過(guò) Python 解釋器把符合語(yǔ)法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機(jī)器碼...
    Python程序媛閱讀 2,037評(píng)論 0 3
  • 問(wèn)題描述 語(yǔ)言規(guī)范 The thisArg value is passed without modificatio...
    何幻閱讀 378評(píng)論 0 0
  • 10月12日周四晚上9點(diǎn)多接到電話,第二天出發(fā),也就是周五,一下子把我的計(jì)劃打亂了。白天除了一些日常工作,本來(lái)計(jì)劃...
    從源王有鵬閱讀 319評(píng)論 0 7
  • 在面對(duì)國(guó)家安全的問(wèn)題上,國(guó)人每次都能表現(xiàn)出空前的團(tuán)結(jié),而且每一次都比以前更加的理智和正確,就像這次因薩德引發(fā)的我國(guó)...
    守旺致靜閱讀 1,444評(píng)論 17 24

友情鏈接更多精彩內(nèi)容