列表基礎(chǔ)
1.已知一個(gè)列表,求列表中心元素售葡。
list1 = ['a','b','c','d','e','f']
if len(list1) % 2: # 判斷列表長(zhǎng)度是否為奇數(shù)看杭,為奇數(shù)則執(zhí)行下列功能
print(list1[int(len(list1) / 2)])
else: # 當(dāng)列表長(zhǎng)度為偶數(shù)時(shí),執(zhí)行下列功能
print(list1[int(len(list1) / 2)], list1[int(len(list1) / 2 - 1)])
print(list1[int(len(list1) / 2)])
print(list1[int(len(list1) / 2 - 1)])
print('===================================')
2.已知一個(gè)列表挟伙,求出所有元素和楼雹。
list2 = [True,False]
# print(sum(list2)) # sum 只能對(duì)元素全是數(shù)字的列表進(jìn)行求和,因?yàn)?sum函數(shù) sum初值為0
# 如果列表元素不是數(shù)字,求和就要用for 遍歷
sum2 = False # 根據(jù)列表中元素?cái)?shù)據(jù)類(lèi)型的不同贮缅,要賦予不同的 sum2值 榨咐,且求和時(shí),True和False一般作為1和0進(jìn)行運(yùn)算
for item in list2:
sum2 += item
print(sum2,type(sum2))
a = 'a'
b = 'b'
b += a
print(b)
3.已知一個(gè)列表谴供,輸出所有奇數(shù)下標(biāo)元素块茁。
list3 = [1,2,3,4,5,6,7,8,9]
for index in range(len(list3)):
if index % 2:
print(list3[index])
4.已知一個(gè)列表,輸出所有元素中憔鬼,值為奇數(shù)的龟劲。
list4 = [112,111,97,88,33]
for num in list4:
if num % 2:
print(num)
5.已知一個(gè)列表胃夏,將所有元素乘二轴或。
list5 = [1,2,3,'a','b','c']
# list5_new = []
# for item in list5:
# list5_new.append(item * 2)
# print(list5,list5_new)
for index in range(len(list5)):
list5[index] *= 2
print(list5)
6.有一個(gè)長(zhǎng)度是10的列表,數(shù)組內(nèi)有10個(gè)人名仰禀,要求去掉重復(fù)的照雁。
例如:names = ['張三', '李四', '大黃', '張三'] -> names = ['張三', '李四', '大黃']
list6 = ['a','b','a','a','b','c','c']
要?jiǎng)h除重復(fù)的元素,首先要確定重復(fù)的元素是哪些答恶。
list6_new = []
for item in list6:
if item not in list6_new:
list6_new.append(item)
print(list6_new)
# 推測(cè):一般要對(duì)列表中的元素進(jìn)行刪除操作時(shí)饺蚊,尤其是刪除重復(fù)元素時(shí),是無(wú)法對(duì)原列表進(jìn)行操作的悬嗓,需要聲明一個(gè)新列表污呼。
# 判斷元素是否重復(fù)要用in 和 not in
list6_new = list(set(list6))
print(list6_new) # 內(nèi)置函數(shù)set 處理后是生成的列表是無(wú)序的。
7.已知一個(gè)數(shù)字列表(數(shù)字大小在0-6535之間)包竹,將列表轉(zhuǎn)換成數(shù)字對(duì)應(yīng)的字符燕酷。
# print(chr(6535))
list7 = [97,98,6534,6535]
for num in list7:
print(chr(num))
8.用一個(gè)列表來(lái)保存一個(gè)節(jié)目的所有分?jǐn)?shù),求平均分?jǐn)?shù)(去掉一個(gè)最高分周瞎,去掉一個(gè)最低分苗缩,求最后得分)
list8 = [9,8,6,9,7,5]
list8.sort()
del list8[0];del list8[len(list8)-1]
print(list8)
print(sum(list8))
print(sum(list8) / len(list8)) # sort() 函數(shù)對(duì)列表進(jìn)行處理后,原列表發(fā)生變化声诸,包括長(zhǎng)度
# print(sum(list8) / len(list8)-3)
# print(sum(list8) / (len(list8)-3))
9.有兩個(gè)列表A 和列表B酱讶,使用列表C來(lái)獲取兩個(gè)列表中公共的元素。
例如:A = [1,'a',4,90] B = ['a',8,'j',1] ---> C = [1,'a']
list9_1 = [1,'a',4,90]
list9_2 = ['a',8,'j',1]
list9_3 = []
for item in list9_1:
if item in list9_2:
list9_3.append(item)
print(list9_3)
周末
1.控制臺(tái)輸入年齡彼乌,根據(jù)年齡輸出不同的提示(例如:老年人泻肯,青壯年,成年人慰照,未成年软免,兒童)
age = int(input('請(qǐng)輸入年齡:'))
if age < 12:
print('兒童')
elif age < 18:
print('未成年')
elif age < 30:
print('成年人')
elif age < 60:
print('青壯年')
else:
print('老年人')
2.計(jì)算5 的階乘5! 的結(jié)果 還可以用循環(huán)和 num *= x x -= 1 求值
# num = int(input('請(qǐng)輸入數(shù)字:'))
# list2 = list(range(num))
# list2.sort(reverse=True)
# del list2[len(list2)-1]
# print(list2)
# for x in list2:
# num *= x
# print(num)
3.求 1! + 2! + 3! +···+20! 的和
num = 20
sum = 0
list3 = list(range(num))
print(list3)
for index in range(len(list3)):
list3[index] += 1
print(list3)
print('====================================')
for x in list3:
if x > 0:
list3_1 = list(range(x))
list3_1.sort(reverse=True)
del list3_1[len(list3_1)-1]
for y in list3_1:
x *= y
sum += x
print(sum)
print('===========================================')
4.計(jì)算1 + 1/2! + 1/3! + 1/4!+···+1/20! 的結(jié)果
num = 20
sum = 0
list4 = list(range(num))
for index in range(len(list4)):
list4[index] += 1
for x in list4:
if x > 0:
list4_1 = list(range(x))
list4_1.sort(reverse=True)
del list4_1[len(list4_1)-1]
for y in list4_1:
x *= y
sum += 1 / x
print(sum)
print('=========================')
5.循環(huán)輸入大于0 的數(shù)字進(jìn)行累加,直到輸入的數(shù)字為0焚挠,就結(jié)束循環(huán)膏萧,并最后輸出累加的結(jié)果。
# num = int(input('請(qǐng)輸入數(shù)字:'))
# sum = 0
# while num != 0:
# sum += num
# num = int(input('請(qǐng)輸入數(shù)字:'))
# print(sum)
6.求s = a + aa + aaa + aaaa + aaaa + aa···a 的值,其中a 是一個(gè)數(shù)字榛泛。
# 例如 2 + 22 + 222 + 2222 + 22222(此時(shí)共有5個(gè)數(shù)相加)蝌蹂,幾個(gè)數(shù)相加有鍵盤(pán)控制。
# 程序分析:關(guān)鍵是計(jì)算出每一項(xiàng)的值曹锨。
# times = int(input('請(qǐng)輸入次數(shù):'))
# x = 1
# num = 2
# sum = 0
# while x <= times:
# intstr_num = int(str(num) * x)
# x += 1
# print(intstr_num,type(intstr_num))
# sum += intstr_num
# print(sum)
# str1 = '1'
# print(str1*2,type(str1*2))
# print(int(str1*2),type(int(str1*2)))
7.輸入三個(gè)整數(shù)x,y,z孤个,請(qǐng)把這三個(gè)數(shù)由小到大輸出
# x = 0
# numbers = []
# while x < 3:
# num = int(input('請(qǐng)輸入整數(shù):'))
# x += 1
# numbers.append(x)
# numbers.sort()
# print(numbers)
8.控制臺(tái)輸出三角形
# a.
# times = int(input('請(qǐng)輸入次數(shù):'))
# list8 = list(range(times))
# for index in range(len(list8)):
# list8[index] += 1
# list8.sort(reverse=True)
# for num in list8:
# print('*'*num)
# b.
print('==========================')
times = 9
blanks = []
numbers = []
for blank in range(times // 2 + 1):
blanks.append(blank)
blanks.sort(reverse=True) # blanks = [[3, 2, 1, 0]]
for number in range(times + 1):
if number % 2:
numbers.append(number) # numbers = [[1, 3, 5, 7]]
for x in range(times // 2 + 1):
print(' ' * blanks[x] + '*' * numbers[x])
9.輸出9*9口訣。 1.程序分析:分行與列考慮沛简,共9行9列齐鲤,i控制行,j控制列椒楣。
n = 9
numbers = []
for num in range(n):
numbers.append(num+1)
for number in numbers:
m = 1
while number >= m:
print(str(number)+'*'+str(m)+'='+str(number*m),end = ' ')
m += 1
print('')
10. 這是經(jīng)典的"百馬百擔(dān)"問(wèn)題给郊,有一百匹馬,馱一百擔(dān)貨捧灰,大馬馱3擔(dān)淆九,中馬馱2擔(dān),兩只小馬馱1擔(dān)毛俏,問(wèn)有大炭庙,中,小馬各幾匹煌寇?
for x in range(1,100):
for y in range(1,100):
for z in range(1,100):
if x + y + z == 100 and 6*x + 4*y + z == 200:
print(x,y,z)