一、 實驗題目
實驗三 常用數據結構實驗
二、 實驗目的
1、掌握列表的定義、索引和切片等操作。
2、了解字典類型的應用場景,掌握字典數據的創建、索引等。
3、了解元組和集合類型的應用場景和操作方法。
三、 實驗內容
- 創建一個記錄10個學生的成績列表,依次輸出原列表,以及列表中的最高分、最低分並按成績從高分到低分排列降序輸出列表各元素。
- 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
- 生成包含20個隨機字符的字符串,然后統計每個字符的出現次數。(使用字典保存每個字符出現次數)。
- 利用字典創建一個6人的簡易通訊錄,要求輸入姓名時能夠反饋聯系電話,當輸入姓名有誤時,系統提示“您的輸入有誤,請重新查詢:”。最后結合for循環遍歷字典,輸出所有人的信息。
- 在IDLE中創建兩個包含若干滑雪項目組成的集合,如集合A1包含項目為('短道速滑','速度滑冰','花樣滑冰','冰球','冰壺') ,集合B1包含項目為('花樣滑冰', '冰壺', '冰球','跳台滑雪','高山滑雪','越野滑雪','單板滑雪','自由式滑雪') ,利用集合的運算求出集合C1(由同時在集合A1和集合B1中的元素組成),集合D1(由包含在集合A1和集合B1中的所有元素組成)以及集合F1(由在集合A1但不在集合B1中的元素組成)。
四、 實驗環境
1、硬件環境:PC機
2、軟件環境:Windows操作系統+Python3.0以上版本
五、 實驗代碼及結果(程序運行結果請以截屏圖給出)
1、源程序代碼:
score=[75,56,78,100,88,55,98,45,32,60]
print('成績如下:')
for i in range(10):
print(score[i])
print('\n')
max=score[0]#最大值
for i in score:
if i> max:
max=i
print('最大值為:',max)
min=score[0]#最小值
for i in score:
if i<min:
min=i
print('最小值為:',min)
print('\n')
print('從高到低排序:')
score.sort(reverse=True)
print(score)
運行結果為:
2、源程序代碼:
s=input('請輸入內容:')
letter=0
space=0
digit=0
other=0
for i in s:
if i.isalpha():#判斷是否是字母
letter+=1
elif i.isspace():#判斷是否是空格
space+=1
elif i.isdigit():#判斷是否是數字
digit+=1
else:
other+=1
print('字母個數為{}\n空格字數為{}\n數字字數為{}\n其他字符為{}\n'.format(letter,space,digit,other))
運行結果為:
3、源程序代碼:
import string
import random
x = string.ascii_letters + string.digits
z = ''.join((random.choice(x) for i in range(20)))
print(f'隨機生成的字符串是:{z}')
d = dict()
for ch in z:
d[ch] = d.get(ch, 0) + 1
for k, v in sorted(d.items()):
print('字符:',k, ':', v,'次')
運行結果為:
4、源程序代碼:
dic = {'張三':'138001','李明':'138002','小王':'138003','佳佳':'138004','小兵':'138005','小玉':'138006'} #創建含有六個鍵值的字典
name = input('請輸入聯系人姓名:')
if name in dic:
print(name,':',dic[name],'\n')
else:
print('您輸入的聯系人不存在\n')
print('\n')
print('遍歷字典:')
for key in dic:
print(key, ":", dic[key])
運行結果為:
5、源程序代碼:
A1=set(['短道速滑','速度滑冰','花樣滑冰','冰球','冰壺'])
B1=set(['花樣滑冰', '冰壺', '冰球','跳台滑雪','高山滑雪','越野滑雪','單板滑雪','自由式滑雪'])
C1=A1&B1
print("交:",C1)
D1=A1|B1
print("並:",D1)
F1=A1-B1
print("差:",F1)
運行結果為: