国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【全解析 | PTA】浙大版《Python 程序設(shè)計(jì)》題目集-第三章

這篇具有很好參考價(jià)值的文章主要介紹了【全解析 | PTA】浙大版《Python 程序設(shè)計(jì)》題目集-第三章。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第三章 使用字符串、列表和元組

一、判斷題

1.'age'+23不是正確的表達(dá)式。T

2.列表可以用find()函數(shù)來(lái)搜索數(shù)據(jù)是否在列表中。F

????????find()函數(shù)是字符串處理函數(shù);Python find() 方法檢測(cè)字符串中是否包含子字符串 str ,如果指定 beg(開(kāi)始) 和 end(結(jié)束) 范圍,則檢查是否包含在指定范圍內(nèi),如果包含子字符串返回開(kāi)始的索引值,否則返回-1。

????????str.find(str, beg=0, end=len(string))

????????str---a指定檢索的字符串

????????beg---開(kāi)始檢索,默認(rèn)為0

????????end---結(jié)束檢索,默認(rèn)為字符串的長(zhǎng)度

????????返回值

????????如果包含子字符串返回開(kāi)始的索引值,否則返回-1。

3.將列表中的元素順序打亂的函數(shù)shuffle()不是random模塊的函數(shù)或方法。F

????????random.shuffle(列表):將列表內(nèi)元素隨機(jī)排列

4.字符串和列表都是序列類(lèi)型。T

5.可以通過(guò)[]訪問(wèn)字符串的某個(gè)字符,也可將它修改成其他字符。F

????????my_string = "Hello"

????????# 訪問(wèn)字符串中的某個(gè)字符

????????char = my_string[1]? # 這將得到 'e'

????????# 嘗試修改字符串中的字符(這不會(huì)起作用,因?yàn)樽址遣豢勺兊模?/span>

????????# my_string[0] = 'J'? # 這會(huì)引發(fā)錯(cuò)誤

????????# 創(chuàng)建一個(gè)新的字符串來(lái)實(shí)現(xiàn)修改

????????new_string = 'J' + my_string[1:]? # 這樣可以得到 'Jello'

????????print(new_string)? # 輸出 'Jello'

6.字符串對(duì)象和元組對(duì)象是不可變對(duì)象,列表對(duì)象為可變對(duì)象。T

7.列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[::]的結(jié)果是[12, -5, -22, -10, -26, 35, 0, 49, 3, -21]。T

????????b[:] ##單獨(dú)一個(gè)冒號(hào),代表從頭取到尾,步長(zhǎng)默認(rèn)為1

????????b[::]##單獨(dú)兩個(gè)冒號(hào)一樣代表從頭取到尾,步長(zhǎng)默認(rèn)為1

????????b[::-1]##注意,兩個(gè)冒號(hào)后面是步長(zhǎng),步長(zhǎng)為1,故應(yīng)從右往左取

8.列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[::-1]的結(jié)果是[-21, 3, 49, 0, 35, -26, -10, -22, -5, 12]。T

9.列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[::2]的結(jié)果是[12, -22, -26, 0, 3]。T

10.列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[1::2]的結(jié)果是[12, -22, -26, 0, 3]。F

11.列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[3:8:2]的結(jié)果是[-10, 35, 49]。T

12. 列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[0:100]的結(jié)果是錯(cuò)誤。F

13. 列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[100:]的結(jié)果是[]。T

14. 列表lst=[12, -5, -22, -10, -26, 35, 0, 49, 3, -21],lst[100]的結(jié)果是運(yùn)行錯(cuò)誤

????????a[0] ##單個(gè)數(shù),代表位數(shù),第0位就是a里面的第一位,切割一位

15.下面的程序當(dāng)輸入是 c d e a時(shí),輸出是 a c d e。F

????????a = input().split(" ")['', 'c', 'd', 'e', 'a']

????????for i in a.sort():???

???????????? print(i,end=" ") 下一個(gè)print接著上一個(gè)在同一行輸出

????????list.sort( key, reverse ),返回None,默認(rèn)升序list1.sort(reverse=False);

????????降序:list1.sort(reverse=True),代碼錯(cuò)了

????????sort()是一個(gè)列表(或可變序列)的方法,它直接對(duì)原始列表進(jìn)行排序,而不會(huì)創(chuàng)建新的對(duì)象。它改變?cè)剂斜淼捻樞?,并且不返回任何值(返回值為None)。sorted()是一個(gè)內(nèi)置函數(shù),接受可迭代對(duì)象作為參數(shù),并返回一個(gè)新的已排序的列表,而不改變?cè)紝?duì)象。

????????總的來(lái)說(shuō),sort()直接作用于列表本身并修改其順序,而sorted()則返回一個(gè)新的已排序列表,不影響原始數(shù)據(jù)。

16.表達(dá)式:"34" in "1234"==True?返回值是True。F

????????對(duì)于列表只能使用in檢查單個(gè)數(shù)據(jù)是否在列表中,對(duì)于字符串,in可以檢查某個(gè)字符串是否是另一個(gè)字符串的一部分,結(jié)果是bool值

????????#這個(gè)是先運(yùn)算 運(yùn)算優(yōu)先級(jí) == 高于in '1234' == True? ,這個(gè)結(jié)果為 False,然后再運(yùn)算 '34' in False,所以結(jié)果是False

????????print(? '34' in '1234' == True )

????????##這個(gè)是先運(yùn)算括號(hào)里面的內(nèi)容,為T(mén)rue,然后再運(yùn)算 True == True,結(jié)果還是 True

????????print(? ( '34' in '1234' ) == True )

17.下面程序輸出是yes。F

????????lst=["1","2","3","4","5"]

????????s1=""

????????for c in lst:

??????????? s1=s1+c+" "

????????s2=" ".join(lst)

????????if s1==s2:

??????????? print("yes")

????????else:

??????????? print("no")

????????s1 = 1 2 3 4 5 (有空格)

????????s2 = 1 2 3 4 5(無(wú)空格)

????????. join():將序列(也就是字符串、元組、列表、字典)中的元素以指定的字符連接生成一個(gè)新的字符

????????+可實(shí)現(xiàn):數(shù)字相加,字符串拼接,列表合并,元組合并,字典合并

18. "12 "*3==" ".join(["12","12","12"]) 的輸出是True。F

19. 語(yǔ)句print("輸出結(jié)果是{:8s}".format("this"))的輸出是:輸出結(jié)果是?□□□□this?!醣硎究崭瘛?span style="color:#ff0000;">F

????????同第二章第七題,s表示是字符串,四個(gè)□□□□在this右邊

20.語(yǔ)句print("輸出結(jié)果是{:8d}".format(1234))的輸出是:輸出結(jié)果是 1234□□□□。 □表示空格。F

????????d表示是整數(shù),數(shù)字默認(rèn)右對(duì)齊

21.語(yǔ)句print("輸出結(jié)果是{:08.2f}".format(14.345))的輸出是:輸出結(jié)果是00014.34。F 00014.35

????????f表示是浮點(diǎn)數(shù)0 表示填充空白處的字符是0。8 表示總字符寬度是8,包括小數(shù)點(diǎn)和小數(shù)部分。 .2f 表示保留兩位小數(shù)。

22.[1,2,[3]]+[4,5]的結(jié)果是[1,2,3,4,5]。F

????????[1, 2, [3], 4, 5] 序列加法p59 連接2個(gè)序列并保持原有順序不變

23. [4,5]*3的結(jié)果是[[4,5],[4,5],[4,5]]。F

????????[4, 5, 4, 5, 4, 5] 列表乘法的操作為重復(fù)列表元素

24.下面程序的輸出是字符a。F

????????c="A"

????????print(c.lower)# lower()函數(shù)寫(xiě)錯(cuò)了

????????牢記各函數(shù)

三、單選題

1. max((3, 5, 1, 7, 4))的結(jié)果是D.7

2.以下哪句打印出smith\exam1\test.txt?

B.print("smith\\exam1\\test.txt") 轉(zhuǎn)義字符

3. list("abcd")的結(jié)果是? A.['a', 'b', 'c', 'd']

4.如果list1 = [1, 2, 3, 4, 5, 4, 3, 2, 1],那么以下那個(gè)是list1[:-1]?C.[1, 2, 3, 4, 5, 4, 3, 2]

5.要把5加到列表lst的末尾,用的是B.lst.append(5)

四、填空題

1. '23'*3的結(jié)果是232323

2. len('3//11//2018'.split('/'))的結(jié)果是5

????????['3', '', '11', '', '2018']

3. lst=[3,4,5,6,5,4,3],執(zhí)行l(wèi)st.remove(3)后,lst[0]的值是:

????????lst.remove(value)刪除值為value的第一個(gè)元素,只刪除首次出現(xiàn)的值

4. list(range(2,12,2))[:-2].pop()的結(jié)果是:

????????lst.pop(index)返回并刪除下標(biāo)為index的元素,默認(rèn)是最后一個(gè)元素

??? 1.? list(range(2, 12, 2))創(chuàng)建了一個(gè)列表[2, 4, 6, 8, 10]。這是一個(gè)從 2 開(kāi)始、以步長(zhǎng)為2遞增到12的列表。

??? 2.? [:-2] 從這個(gè)列表中排除了最后兩個(gè)元素,因此現(xiàn)在列表變?yōu)?[2, 4, 6]。

??? 3.? pop() 方法彈出并返回列表的最后一個(gè)元素,即 6。

????????因此,list(range(2, 12, 2))[:-2].pop() 的結(jié)果是 6。

5.要想得到[0,100]范圍內(nèi)的隨機(jī)數(shù),random.randint(0,n)里的n應(yīng)該是:100

????????random庫(kù) 書(shū)77 random.randint(a,b)返回一個(gè)介于[a,b]的隨機(jī)整數(shù)

????????random.uniform(a,b)返回一個(gè)介于[a,b]的浮點(diǎn)數(shù)

6. print("{1}+{0}={2}".format(2,3,2+3))的輸出是3+2=5

7.? ? a=34

????????b=23

????????print("{first}-{second}={0}".format(34-23,first=a,second=b))

上面程序輸出是34-23=11

8. print("{:>08s}".format(bin(31)[2:]))的輸出是00011111

????????print(bin(31))
????????print(bin(31)[2:])

????????0b11111

????????11111

9. print("programming".find("r",2))的輸出是4

????????在字符串中找到子串所在位置,不存在返回-1,str.find(str,beg=0,end=len(string))

10. print("programming".find("x"))的輸出是-1

11. print("a123".isdigit())的輸出是False

????????isdigit() 判斷單個(gè)字符是否為數(shù)字;判斷字符串中是否含有數(shù)字

12. print("aABC".isalpha())的輸出是 True

????????isalpha()?可以判斷「字符串」是否只包含「字母」;字符串的所有字符都是字母返

????????True否則返回False

13. print("□□□xyz□□".strip(),"□□□xyz□□".rstrip(),
"□□□xyz□□".lstrip())
的輸出是xyz□□□□xyz□xyz□□

????????內(nèi)置函數(shù)strip,rstrip,lstrip的使用

????????‘xyz??? xyz xyz? ’

14. a=[1,2,3,4]

??? ?b=a

???? print(id(a)==id(b))

???? c=a.copy()

???? print(id(a)==id(c))

?????????d=a[:]

?????????print(id(a)==id(d))

????????上面程序的輸出依次分別是True False False

?? ??? b = a:這里將列表 b 指向了和列表 a 相同的內(nèi)存地址,因此 id(a)==id(b) 會(huì)返回 True,因?yàn)樗鼈冎赶蛲粋€(gè)對(duì)象。

??? ??? c = a.copy():使用 copy() 方法創(chuàng)建了列表 c 的副本,它包含了和列表 a 相同的元素,但在內(nèi)存中卻是不同的對(duì)象。因此 id(a)==id(c) 會(huì)返回 False,因?yàn)樗鼈冎赶虿煌膶?duì)象。

??? ??? d = a[:]:通過(guò)切片操作創(chuàng)建了列表 d 的副本,和 a 的元素相同但在內(nèi)存中是不同的對(duì)象。所以 id(a)==id(d) 會(huì)返回 False,因?yàn)樗鼈冎赶虿煌膶?duì)象。

len('3//11//2018'.split('/'))的結(jié)果是_____。,python,數(shù)據(jù)庫(kù),開(kāi)發(fā)語(yǔ)言

15.列表加元組可以表示二維表。

下面程序用三種不同方式打印表格內(nèi)容,請(qǐng)?zhí)羁胀瓿膳c第一種方式輸出一樣的后面兩種方式,不要加無(wú)用空格。

students=[(3180102988,"褚好"),

?(3170102465,"王凱亮"),

?(3160104下面程序輸出值是1。6,"李永"),

?(3171104169,"陳鑫"),

?(318400429,"徐杭誠(chéng)")]

for row in students: #按行存取

?print(row[0],row[1])

print()

????????在這個(gè)代碼片段中,通過(guò) for row in students: 這行代碼,每次循環(huán)迭代都會(huì)將 students 列表中的一個(gè)元組賦值給變量 row。這里的 row 實(shí)際上代表了列表中的每個(gè)元組。然后,通過(guò) row[0] 和 row[1],可以分別訪問(wèn)每個(gè)元組中的學(xué)號(hào)和姓名。

for id,name in students: #按行拆包存取

??? print(?????? id,name??????? )

print()

????????直接將元組或列表中的項(xiàng)分別直接賦值給不同的變量

for index in range(len(students)): #按索引存取

??? print(????? students[index][0],students[index][1]???????? )

print()

16. print(sum((1,3,5,7,9))/len((1,3,5,7,9)))的輸出是5.0

17.下面程序的輸出是2

t=1

????????t,a=2,t+1 #就是解包賦值操作

print(a)

五、編程題

7-1 大于身高的平均值

a_height = list(map(int,input().split()))
avg = sum(a_height) / len(a_height)
for i in a_height:
    if i > avg:
        print("{} ".format(i),end='')

7-2 輸出字母在字符串中位置索引

strip_l = list(input())
a,b = input().split()  #本質(zhì)上也是拆包
c = len(strip_l)
# 序列倒序
for i in strip_l[::-1]:
    c = c - 1
    if c < 0:
        break
    # i == 's' or i == 'p' 錯(cuò)一半
    if i == a or i == b:
        print("{0} {1}".format(c,i))

7-3 求整數(shù)的位數(shù)及各位數(shù)字之和

# num = list(input())
N_num = list(map(int,list(input())))
Count = len(N_num)
Result = sum(N_num)
print(Count,Result)

7-4 字符替換

a = input()
n =''
for i in a:
    num = ord(i)
    if 65 <= num <= 90:
        # 加號(hào)有很多功能,可以實(shí)現(xiàn)字符串拼接
        # 注意155的含義
        n += chr(155-num)
    else:
        n += i
print(n)

7-5 刪除字符

a = input()
c = input()
a = a.strip()
c = c.strip()
new = ''
for i in a:
    if i != c.upper and i != c.lower():
        new += i
    else:
        new += ''
print("result: {}".format(new))

7-6 輸出10個(gè)不重復(fù)的英文字母

a = input()
a = a.replace(' ','')#把字符中的空格換成空
n = ''
for i in a:
    if i.isalpha(): #判斷是否為字母
        if i.lower() not in n.lower(): #換成小寫(xiě)判斷無(wú)重復(fù)
            n += i
if len(n) < 10:
    print("not found")
else:
    print(n[:10])

7-7 逆序的三位數(shù)

a = input()
b = a[::-1]
b = int(b) #007轉(zhuǎn)換為整型7
print(b)

7-8 判斷兩個(gè)字符串是否為變位詞

a = list(input())
b = list(input())
# a = sorted(a)
# b = sorted(b)
a.sort()
b.sort()
if a == b:
    print('yes')
else:
    print('no')

7-9 輸入字符串,排序后輸出最大字符及該字符在原字符串中的索引

a = list(input())
b = sorted(a)
m = 0
for i in range(0,len(a)):
    if a[i] == b[-1]:
        m = i
print("{}   {}".format(b[-1],m))

7-10 計(jì)算有n個(gè)字符串中最長(zhǎng)的字符串長(zhǎng)度

n = int(input())
sum = []
for i in range(0,n):
    s = input()
    s = s.strip()
    length = len(s)
    sum.append(length) #沒(méi)有返回值
sum.sort()
print("length={}".format(sum[-1]))

7-11 位1的個(gè)數(shù)

n = bin(int(input()))
count = 0
for i in n:
    if i == '1':
        count += 1
print(count)

7-12 整數(shù)的二進(jìn)制相加

x = int(input())
y = int(input())
#利用格式化輸出
print("{:0>8b}".format(x))
print("{:0>8b}".format(y))
print('--------')
print("{:0>8b}".format(x+y))

7-13 漢明距離

x, y = map(int, input().split())
# 將整數(shù)轉(zhuǎn)換為二進(jìn)制字符串,并去除開(kāi)頭的'0b'
binary_x = bin(x)[2:]
binary_y = bin(y)[2:]

# 計(jì)算兩個(gè)二進(jìn)制數(shù)的長(zhǎng)度
len_x = len(binary_x)
len_y = len(binary_y)

# 將兩個(gè)二進(jìn)制數(shù)左邊補(bǔ)0補(bǔ)齊至相同的長(zhǎng)度
if len_x < len_y:
    binary_x = '0' * (len_y - len_x) + binary_x
else:
    binary_y = '0' * (len_x - len_y) + binary_y
# print(list(bit_x != bit_y for bit_x, bit_y in zip(binary_x, binary_y)))
# 統(tǒng)計(jì)不同位的個(gè)數(shù) 又是解包 得到 bool值的迭代器
count = sum(bit_x != bit_y for bit_x, bit_y in zip(binary_x, binary_y))
print(count)

7-14 判斷回文字符串

s = input()
s1 = ''.join([i for i in s if i.isalnum()])
s1 = s1.lower()
if s1 == s1[::-1]:
    print('yes')
else:
    print('no')

7-15 輸入一行字符串,并將它轉(zhuǎn)換成10進(jìn)制數(shù)輸出

s = input()
s1 = ''.join([i for i in s if '1'<=i<='9' or 'a'<=i.lower()<='f'])
print(s1)
print("{}".format(int(s1,16)))

7-16 統(tǒng)計(jì)滿足特定條件的字符數(shù)

a = input()
b = input()
sum = 0
for i in a:
    if i in b:
        sum += 1
print(sum)

7-17 查驗(yàn)身份證文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-851709.html

n = int(input())
ques = []
weights = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
test = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]

for i in range(n):
    id = input()
    # 檢查前17位是不是數(shù)字?。?!id[:-1] 不包括最后一個(gè)數(shù)
    if not id[:-1].isdigit():
        ques.append(id)
        continue
    #判斷全是數(shù)字但是校驗(yàn)碼錯(cuò)誤的id,對(duì)切片理解錯(cuò)了,哭死,加權(quán)也是加的前17位
    id_numbers = list(map(int,id[:-1]))
    # 元組解包賦值再使用sum函數(shù)求值操作
    weighted_sum = sum(id_num * weighte for id_num, weighte in zip(id_numbers, weights))
    z = weighted_sum % 11
    if str(test[z]) != id[-1]:
        ques.append(id)

if ques == []:
    print('All passed')
else:
    for i in ques:
        print(i)

到了這里,關(guān)于【全解析 | PTA】浙大版《Python 程序設(shè)計(jì)》題目集-第三章的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包