- 請(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)容輸出到流文件,不作緩存。
- 小明的成績(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)
- 請(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()一下
- 請(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)不要忘記
- 漢諾塔的移動(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')
- 請(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ě)
- 楊輝三角
# -*- 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))]
成功!