一、輸入輸出函數(shù)
1.輸出函數(shù):print()
- 默認每一個print()函數(shù)輸出完內容后會輸出一個換行符
- 一個print()函數(shù)輸出多個內容用','隔開,輸出會變成空格
- 內容后面加上end=''來設置結束標志,默認是'\n'
- 內容后加上sep='',來把原本的','顯示的空格替換掉
print('aaa', 666, end='')
print('bbb', 1000, sep='')
2.輸入函數(shù):input()函數(shù)
- input()函數(shù)可以接收從控制臺輸入的內容,以回車為結束標志
- input()函數(shù)會阻塞線程,程序執(zhí)行到input的時候會停下來等待用戶的輸入,輸入完成后才會繼續(xù)執(zhí)行
- input()接收到的數(shù)據(jù)是以字符串的形式返回(python2.x中輸入的是數(shù)字的時候返回的是int或者float型)
value = input('(參數(shù)/提示)請輸入一個整數(shù):')
print(value, type(value))
練習1: 隨機產生一個1~100的數(shù)字,輸入數(shù)字如果和產生數(shù)字提示猜對并且退出,不相等則提示小了或者是大了
import random
result = random.randint(1, 100)
count = 0
while True:
guess = int(input('請輸入你猜得答案:'))
count += 1
if result > guess:
print('輸入結果小了')
elif result < guess:
print('輸入結果大了')
else:
if count > 5:
print('太一般了')
else:
print('運氣好而已')
print('恭喜你猜對了,猜了', count, '次', sep='')
break
二、列表
- 列表\字典\元組\集合都是序列,都是容器類型得數(shù)據(jù)類型
- 列表(list):用來存儲多個數(shù)據(jù)的一種數(shù)據(jù)類型,里面存儲的單個數(shù)據(jù)叫做元素
- 特點:1.有序 2.可變的(內容個數(shù)和值都可改變) 3.元素可以是任何類型的數(shù)據(jù)
- 列表的值:用[]將元素括起來,多個元素之間用','隔開. []->空列表
1.聲明一個列表
list1 = [] # 創(chuàng)建一個空列表 聲明一個變量賦列表值
print(type(list1))
list2 = [1, 12.3, 'asdd', [1, 2, 3, 'a'], True, {'a': 1}]
print(type(list2), list2)
list3 = list('aaaa') # 將其他變量轉換成列表 整型/浮點型/布爾型不能轉換為列表
print(type(list3), list3)
list4 = list(i * 2 for i in range(10)) # 通過生成式聲明列表
print(list4)
list5 = list(i for i in range(10) if i % 3 == 0)
print(list5)
2.獲取列表的元素
- 列表中的每個元素都對應一個下標:0列表長度-1/-1-列表長度
注意:下標不能越界
names = ['科比', '歐文', '韋德', '名人', '姚明']
print(names)
a. 獲取單個元素: 列表名[下標]
print(names[-1])
b. 獲得部分元素(切片)
- 列表名[起始下標:結束下標]左閉右開: 從起始下標開始到結束下標之前的元素,結果還是列表
- 列表名[起始下標:結束下標:步進]:從起始下標開始,每次下標值加步進獲取下一個元素,直到結束下標前為止
- 起始下標和結束下標都可以缺省.如果步進是正數(shù),起始下標缺省是從0開始,如果為負則從最后一個開始,如果步進是正數(shù),結束下標缺省是從最后開始,如果為負則從第一個開始
print(names[1:3])
print(names[-4:-1])
names[:] # 從列表中獲取所有元素創(chuàng)建一個新的列表
c.遍歷列表
scores = [59, 58, 57, 56, 88, 55, 53, 50]
count = 0
for i in scores: # for循環(huán)遍歷
if i < 60:
count += 1
print(count)
3.獲取列表的長度: len(列表)
i, count = 0, 0
while i < len(scores):
if scores[i] < 60:
count += 1
i += 1
print(count)
三、添加列表元素
1.append()函數(shù)添加元素
- 列表.append(元素)
- 在列表的末尾添加一個元素
skills = []
skills.append('單手暴扣')
skills.append('單腳起跳基礎扣籃')
2.insert函數(shù)
- 列表.insert(index,元素)
- 在指定下標前添加元素
- 注意:index可以越界,會插入到最前/最后
skills.insert(1, '戰(zhàn)斧式扣籃')
3.+拼接列表
- 列表1+列表2
- 將列表2中的元素與列表1的元素合并,創(chuàng)建一個新的列表
skills += ['傳奇德雷克勒斯', '傳奇喬丹']
print(skills)
練習1:從控制臺輸入10個學生的成績,保存到列表中
grades = []
for _ in range(10):
grade = float(input('>>>'))
grades.append(grade)
print(grades)
四、刪除列表元素
注意:不管是添加元素還是刪除元素,都會重新分配下標,下標不能越界
1.del 語句
- del可以刪除任何數(shù)據(jù)
- del 列表[下標]:刪除列表中指定下標的元素
names = ['狗蛋', '二傻', '狗剩', '蠢蛋', '二比', '大狗', '二狗', '鐵蛋', '二傻']
del names[4]
2.remove方法
- 列表.remove(元素):刪除列表中的指定元素(如果有多個相同元素,只刪第一個)
注意:如果刪除的元素不存在,則會報錯
names.remove('二傻')
print(names)
3.pop方法
- 列表.pop():彈出最后一個元素
- 列表.pop(下標):彈出指定下標的元素
注意:下標不能越界
name = names.pop()
print(names, name)
name = names.pop(2)
print(names, name)
練習1:刪除所有成績小于60分的成績
scores = [21, 23, 50, 89, 92, 5, 35, 89, 92, 99]
for i in scores[:]:
if i < 60:
scores.remove(i)
print(scores)
總結:
最后切片雖然每次循環(huán)在更新,但是實際上for用的list是第一次的結果