1.輸出函數(shù):print()
- 默認(rèn)每一個(gè)print函數(shù),輸出完內(nèi)容之后會(huì)輸出一個(gè)換行
- 一個(gè)print函數(shù)輸出多個(gè)內(nèi)容的時(shí)候过咬,內(nèi)容之間是用空格隔開的
- 內(nèi)容后邊加end=來(lái)設(shè)置結(jié)束標(biāo)志(默認(rèn)是'\n')
- 通過(guò)設(shè)置sep的值大渤,來(lái)設(shè)置多個(gè)內(nèi)容之間的間隔符(默認(rèn)是' ')
print('aaa', 100, end='\n', sep=',')
print('bb')
結(jié)果:
aaa,100
bb
2. 輸入函數(shù):input()函數(shù)
- input()函數(shù)可以接收從控制臺(tái)輸入的內(nèi)容(以回車為結(jié)束標(biāo)志)
- input函數(shù)會(huì)阻塞線程,程序執(zhí)行到input的時(shí)候會(huì)停下來(lái)掸绞,等待用戶的輸入泵三,輸入完成后才會(huì)接著執(zhí)行下面的內(nèi)容
- 接收到的數(shù)據(jù)是以字符串的形式返回的(python2.x中輸入的是數(shù)字的時(shí)候,可能返回int類型或者浮點(diǎn)型數(shù)據(jù))
value = input('請(qǐng)輸入:')
print('aaa', value, type(value))
結(jié)果:
請(qǐng)輸入:12
aaa 12 <class 'str'>
練習(xí):猜數(shù)字游戲
隨機(jī)產(chǎn)生一個(gè)1-100的整數(shù),輸入的數(shù)字如果和產(chǎn)生的隨機(jī)數(shù)是一樣的烫幕,就提示猜對(duì)了俺抽,并且游戲結(jié)束
如果輸入的數(shù)大于或者小于隨機(jī)數(shù),就提示輸入的數(shù)字偏大或者偏小较曼,然后讓重新輸入
import random
number = random.randint(1, 100)
count = 0
while True:
value = int(input('猜:'))
count += 1
if number == value:
if count >= 6:
print('智商著急')
if count == 1:
print('運(yùn)氣不錯(cuò)')
print('對(duì)了')
break
elif number > value:
print('小了磷斧,重新猜:')
elif number < value: # 或者直接else:
print('大了,重新猜:')
結(jié)果:
猜:50
大了诗芜,重新猜:
猜:20
小了瞳抓,重新猜:
猜:40
大了,重新猜:
猜:30
小了伏恐,重新猜:
猜:38
大了孩哑,重新猜:
猜:35
小了,重新猜:
猜:36
智商著急
對(duì)了
3. 列表翠桦、字典横蜒、元組、集合都是序列销凑,都是容器類型的數(shù)據(jù)類型
列表(list):用來(lái)存儲(chǔ)多個(gè)數(shù)據(jù)的一種數(shù)據(jù)類型丛晌。里面存儲(chǔ)的單個(gè)數(shù)據(jù),我們叫元素
特點(diǎn):1. 有序的 2. 可變的(可變指的是容器中的內(nèi)容的個(gè)數(shù)和值可變) 3. 元素可以是任何類型的數(shù)據(jù)
列表的值:用[] 將列表中的元素括起來(lái)斗幼,多個(gè)元素之間用逗號(hào)隔開澎蛛。[] --> 空列表
- 怎么聲明一個(gè)列表
a. 聲明一個(gè)變量,賦一個(gè)列表值
list1 = [] # 創(chuàng)建一個(gè)空的列表
print(type(list1))
結(jié)果:
<class 'list'>
list2 = [1, 2.4, 'abc', True, [1, 2], {'a': 1}]
print(list2, type(list2))
結(jié)果:
[1, 2.4, 'abc', True, [1, 2], {'a': 1}] <class 'list'>
b. 將其他的數(shù)據(jù)類型轉(zhuǎn)換成列表
list3 = list('asd12')
print(list3)
結(jié)果:
['a', 's', 'd', '1', '2']
c. 將取出來(lái)的值乘以2創(chuàng)建一個(gè)列表
list4 = list(i*2 for i in range(10))
print(list4)
結(jié)果:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
d. 創(chuàng)建一個(gè)100以內(nèi)3的倍數(shù)的列表
list5 = list(i for i in range(100) if i % 3 == 0)
print(list5)
結(jié)果:
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
- 獲取列表元素
列表中的每一個(gè)元素都對(duì)應(yīng)一個(gè)下標(biāo):0 ~ 列表長(zhǎng)度-1 蜕窿; -1 ~ - 列表長(zhǎng)度
names = ['哮天犬', '小狗', '孫悟空', '老沙', 'Faker']
a. 獲取單個(gè)元素- 列表名[下標(biāo)]
- 下標(biāo)不能越界
print(names[1])
print(names[-3])
結(jié)果:
小狗
孫悟空
b. 獲取部分元素(切片)
- 列表名[起始下標(biāo):結(jié)束下標(biāo)]:獲取從起始下標(biāo)開始谋逻,到結(jié)束下標(biāo)前的所有元素。結(jié)果是一個(gè)列表
- 列表名[起始下標(biāo):結(jié)束下標(biāo):步進(jìn)] 從起始下標(biāo)開始桐经,每次下標(biāo)值加步進(jìn)獲取下一個(gè)元素毁兆,直到結(jié)束下標(biāo)前為止
- 起始下標(biāo)和結(jié)束下標(biāo)都可以缺省:如果步進(jìn)是正數(shù)阴挣,起始下標(biāo)缺省就是從第一個(gè)元素開始獲绕椤;如果步進(jìn)是負(fù)數(shù)畔咧,就從最后一個(gè)元素開始獲取
- 結(jié)束下標(biāo)缺省茎芭,步進(jìn)是正數(shù),獲取到最后一個(gè)元素盒卸;步進(jìn)是負(fù)數(shù)骗爆,就從后往前獲取到第一個(gè)元素
print(names[1:4])
print(names[-4:-1])
print(names[0:4:2])
print(names[:]) # 獲取列表中的所有元素,重新創(chuàng)建一個(gè)新的列表
結(jié)果:
['小狗', '孫悟空', '老沙']
['小狗', '孫悟空', '老沙']
['哮天犬', '孫悟空']
['哮天犬', '小狗', '孫悟空', '老沙', 'Faker']
c. 一個(gè)一個(gè)的獲取列表的所有元素(遍歷列表)
scores = [12, 89, 43, 36, 98, 34, 56]
for循環(huán)遍歷:
for item in scores:
print(item)
結(jié)果:
12
89
43
36
98
34
56
while循環(huán)遍歷:
index = 0
while index < len(scores):
print(scores[index])
index += 1
結(jié)果:
12
89
43
36
98
34
56
- 獲取列表的長(zhǎng)度(獲取列表元素的個(gè)數(shù))
len(列表)
print(len(scores))
結(jié)果:
7
4. 添加列表元素
skills = []
print(skills)
結(jié)果:
[]
- append函數(shù)
列表.append(元素)
在列表的末尾添加一個(gè)元素
skills.append('龜派氣功')
print(skills)
skills.append('居里夫人')
print(skills)
結(jié)果:
['龜派氣功']
['龜派氣功', '居里夫人']
- insert函數(shù)
列表.insert(下標(biāo),元素)
在列表的指定的下標(biāo)前插入一個(gè)元素
注意:在這兒蔽介,下標(biāo)可以越界摘投,如果越界煮寡,就會(huì)插入到列表的最前面或者最后面
skills.insert(1, '無(wú)敵風(fēng)火輪')
print(skills)
結(jié)果:
['龜派氣功', '無(wú)敵風(fēng)火輪', '居里夫人']
- 加:+
列表1 + 列表2
將列表2中的元素和列表1中的元素合并后創(chuàng)建一個(gè)新的列表
new_skills = skills + ['如來(lái)神掌', '一個(gè)達(dá)布妞']
print(new_skills)
結(jié)果:
['龜派氣功', '無(wú)敵風(fēng)火輪', '居里夫人', '如來(lái)神掌', '一個(gè)達(dá)布妞']
練習(xí):從控制臺(tái)輸入10個(gè)學(xué)生的成績(jī),然后保存在一個(gè)列表中
scores = []
for _ in range(10):
score = float(input('輸入學(xué)生的成績(jī):'))
scores.append(score)
print(scores)
結(jié)果:
輸入學(xué)生的成績(jī):1
輸入學(xué)生的成績(jī):2
輸入學(xué)生的成績(jī):3
輸入學(xué)生的成績(jī):4
輸入學(xué)生的成績(jī):5
輸入學(xué)生的成績(jī):6
輸入學(xué)生的成績(jī):7
輸入學(xué)生的成績(jī):8
輸入學(xué)生的成績(jī):9
輸入學(xué)生的成績(jī):10
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
5. 刪除列表元素
注意:不管是添加元素還是刪除元素犀呼,都會(huì)重新分配下標(biāo)
films = ['天線寶寶', '一人之下', '我不是藥神', '神奇寶貝', '植物大戰(zhàn)僵尸', '天線寶寶']
- del語(yǔ)句
del語(yǔ)句可以刪除任何數(shù)據(jù)
del 列表[下標(biāo)]:刪除列表中指定下標(biāo)的元素
注意:這里的下標(biāo)不能越界
del films[1]
print(films)
結(jié)果:
['天線寶寶', '我不是藥神', '神奇寶貝', '植物大戰(zhàn)僵尸', '天線寶寶']
- remove方法
列表.remove(元素):刪除列表中的指定的元素(如果同一個(gè)元素有多個(gè)幸撕,只刪除最前面那一個(gè))
注意:如果要?jiǎng)h除的元素不在列表中,會(huì)報(bào)錯(cuò)
films.remove('天線寶寶')
print(films)
結(jié)果:
['我不是藥神', '神奇寶貝', '植物大戰(zhàn)僵尸', '天線寶寶']
- pop方法
列表.pop():將列表中的最后一個(gè)元素取出來(lái)
列表.pop(下標(biāo)):將列表中指定下標(biāo)的元素取出來(lái)
注意:這里的下標(biāo)不能越界
film = films.pop()
print(film)
film = films.pop(1)
print(films, film)
結(jié)果:
天線寶寶
['我不是藥神', '植物大戰(zhàn)僵尸'] 神奇寶貝
練習(xí):scores = [23,31,78,56,89,68,1,97],刪除所有小于60分的成績(jī)
scores = [23, 31, 78, 56, 89, 68, 1, 97]
for score in scores[:]: # 這里的scores[:] 相當(dāng)于[23, 31, 78, 56, 89, 68, 1, 97]外臂,一個(gè)新的地址坐儿,只更新不用它
if score < 60:
scores.remove(score)
print(scores)
結(jié)果:
[78, 89, 68, 97]
作業(yè):
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是?一個(gè)數(shù)字宋光。例例如2+22+222+2222+22222(此時(shí)共有5個(gè)數(shù)相 加)貌矿,?幾個(gè)數(shù)相加有鍵盤控制
a = int(input('請(qǐng)輸入a的值:'))
time = int(input('請(qǐng)輸入有幾個(gè)數(shù)相加:'))
sum = 0
num = 0
for i in range(time):
num = num * 10 + a
sum = sum + num
print('結(jié)果為:',sum)
結(jié)果:
請(qǐng)輸入a的值:2
請(qǐng)輸入有幾個(gè)數(shù)相加:5
結(jié)果為: 24690
- 打印圖形1
n = 4
@
@@
@@@
@@@@
n = 5
@
@@
@@@
@@@@
@@@@@
n = int(input('請(qǐng)輸入n:'))
for i in range(1, n+1):
for j in range(1, i+1):
print('@', end='')
print('')
請(qǐng)輸入n:5
@
@@
@@@
@@@@
@@@@@
-
打印圖形2
22.png
n = int(input('請(qǐng)輸入n:'))
for i in range(1,n+1):
print(' '*(n-((2*i-1)//2)-1) + '@'*(2*i-1))
請(qǐng)輸入n:5
@
@@@
@@@@@
@@@@@@@
@@@@@@@@@
- 打印圖形3
n = 3
@@@
@@
@
n = int(input('輸入n:'))
for i in range(1,n+1):
print('@'*(n-i+1))
輸入n:3
@@@
@@
@
- 輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)罪佳。
num1 = int(input('請(qǐng)輸入第一個(gè)數(shù):'))
num2 = int(input('請(qǐng)輸入第二個(gè)數(shù):'))
min1 = min(num1,num2)
max1 = max(num1,num2)
big = []
for i in range(1,min1+1):
if num1 % i == 0 and num2 % i == 0:
big.append(i)
for j in range(max1,num1*num2 + 1):
if j % num1 == 0 and j % num2 == 0:
break
print('最小公倍數(shù):', j)
print('最大公約數(shù):', max(big))
請(qǐng)輸入第一個(gè)數(shù):4
請(qǐng)輸入第二個(gè)數(shù):18
最小公倍數(shù): 36
最大公約數(shù): 2
- 一個(gè)數(shù)如果恰好等于它的因子之和逛漫,這個(gè)數(shù)就稱為 "完數(shù) "。例如6=1+2+3.編程 找出1000以內(nèi)的所有完數(shù)
for i in range(1, 1001):
sum = 0
for j in range(1, i):
if i % j == 0:
sum = sum + j
if sum == i:
print(i)
6
24
28
496
- 輸出9*9口訣
for i in range(1, 10):
for j in range(1, i+1):
num = i * j
print('%d*%d=%d ' % (j,i, num),end = '')
print()
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
- 一個(gè)5位數(shù)赘艳,判斷它是不是回文數(shù)酌毡。即12321是回文數(shù),個(gè)位與萬(wàn)位相同蕾管,十位與千位相同枷踏。
num = int(input('請(qǐng)輸入一個(gè)五位數(shù):'))
ge = num % 10
shi = num % 100 // 10
qian = num % 10000 // 1000
wan = num // 10000
if ge == wan and shi == qian:
print('%d是回文數(shù)' % (num))
elif len(str(num)) != 5:
print('你輸入的不是五位數(shù)')
else:
print('%d不是回文數(shù)' % (num))
請(qǐng)輸入一個(gè)五位數(shù):12333
12333不是回文數(shù)
請(qǐng)輸入一個(gè)五位數(shù):12321
12321是回文數(shù)
請(qǐng)輸入一個(gè)五位數(shù):123
你輸入的不是五位數(shù)
-
打印圖形(菱形)
n = int(input('請(qǐng)輸入n:'))
for i in range(1, n+1):
print(' '*(n-((2*i-1)//2)-1) + '@' * (2*i-1))
for j in range(1, n):
print(' '*j + '@' * (2*(n-j)-1) )
請(qǐng)輸入n:4
@
@@@
@@@@@
@@@@@@@
@@@@@
@@@
@
- 輸入一行字符,分別統(tǒng)計(jì)出其中英文字母掰曾、空格旭蠕、數(shù)字和其它字符的個(gè)數(shù)。
a = input('請(qǐng)輸入一行字符:')
letter = 0
space = 0
number = 0
other = 0
for i in range(len(a)):
if a[i].isalpha():
letter += 1
elif a[i].isspace():
space += 1
elif a[i].isdigit():
number += 1
else:
other += 1
print('字母有%d個(gè)旷坦,空格有%d個(gè)下梢,數(shù)字有%d個(gè),其他字符有%d個(gè)' % (letter, space, number, other))
請(qǐng)輸入一行字符:123ad * &
字母有2個(gè)塞蹭,空格有2個(gè),數(shù)字有3個(gè)讶坯,其他字符有2個(gè)
- 已知一個(gè)列表番电,求列表中心元素。
list1 = [1, 2, 3, 4, 5]
a = len(list1)
print(list1[a//2])
3
- 已知一個(gè)列列表辆琅,求所有元素和漱办。
list1 = [1,2,3,4,5]
sum1 = 0
for i in range(len(list1)):
sum1 += int(list1[i])
print(sum1)
15
- 已知一個(gè)列表,輸出所有奇數(shù)下標(biāo)元素婉烟。
list1 = [1,2,3,4,5]
len1 = len(list1)
list2 = []
for i in range(len1):
if i % 2 == 0:
list2.append(list1[i])
print('奇數(shù)下標(biāo)元素為:',list2)
奇數(shù)下標(biāo)元素為: [1, 3, 5]
- 已知一個(gè)列表娩井,輸出所有元素中,值為奇數(shù)的似袁。
list1 = [1,2,3,4,5]
list2 = []
for i in range(len(list1)):
if list1[i] % 2 != 0:
list2.append(list1[i])
print('值為奇數(shù)的有:',list2)
值為奇數(shù)的有: [1, 3, 5]
- 已知一個(gè)列表洞辣,將所有元素乘二咐刨。
list1 = [1, 2, 3, 4, 5]
list2 = []
for i in range(len(list1)):
list2.append(list1[i] * 2)
print(list2)
[2, 4, 6, 8, 10]
- 已知一個(gè)列表,將所有元素加到第一個(gè)元素中扬霜。
list1 = [1, 2, 3, 4, 5]
sum1 = 0
for i in range(len(list1)):
sum1 += list1[i]
list1.insert(0,sum1)
print(list1)
[15, 1, 2, 3, 4, 5]
- 已知一個(gè)列表A定鸟,將奇數(shù)位置元素存到B列表中,偶數(shù)元素存到C列表中著瓶。
list1 = [1, 2, 3, 4, 5]
B = []
C = []
for i in range(len(list1)):
if i % 2 == 0:
B.append(list1[i])
else:
C.append(list1[i])
print('奇數(shù)列表:',B,'\n','偶數(shù)列表:',C)
奇數(shù)列表: [1, 3, 5]
偶數(shù)列表: [2, 4]
- 把A列表的前5個(gè)元素復(fù)制到B列表中联予。
A = [1, 2, 3, 4, 5, 6, 7, 8]
B = []
for i in range(len(A)):
if i <= 4:
B.append(A[i])
print('A列表:',A)
print('B列表:',B)
A列表: [1, 2, 3, 4, 5, 6, 7, 8]
B列表: [1, 2, 3, 4, 5]
- 把1----36分別放入列表中,計(jì)算列表數(shù)組對(duì)角元素之和材原。6 * 6的列表
sum = 0
list1 = [[0 for _ in range(6)]for _ in range(6)]
for i in range(6):
for j in range(6):
list1[i][j] = i * 6 + j + 1
sum = list1[0][0] + list1[0][5] + list1[5][0] + list1[5][5]
print('對(duì)角元素和為',sum)
對(duì)角元素和為 74
- 有一個(gè)長(zhǎng)度是10的列表沸久,列表內(nèi)有10個(gè)不重復(fù)的數(shù)字,要求按從大到小排序余蟹。
list1 = [1, 3, 2, 4, 6, 5, 7, 8, 10, 9]
for i in range(len(list1)-1):
for j in range(i+1, len(list1)):
if list1[i] < list1[j]:
temp = list1[j]
list1[j] = list1[i]
list1[i] = temp
print(list1)
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
- 有一個(gè)長(zhǎng)度是10的列表卷胯,要求刪除某一個(gè)位置的元素
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
p = int(input('請(qǐng)輸入要?jiǎng)h除第幾個(gè)元素:'))
del list1[p-1]
print('刪除后的列表為:',list1)
請(qǐng)輸入要?jiǎng)h除第幾個(gè)元素:2
刪除后的列表為: [1, 3, 4, 5, 6, 7, 8, 9, 10]
- 有一個(gè)長(zhǎng)度是10的列表,按遞增排列客叉,用戶輸入一個(gè)數(shù)诵竭,插入適當(dāng)位置。
list1 = [1, 2, 3, 4, 5, 6, 11, 8, 9, 10]
num = int(input('請(qǐng)輸入要插入的數(shù)字:'))
list1.append(num)
for i in range(len(list1)-1):
for j in range(i+1, len(list1)):
if list1[i] > list1[j]:
temp = list1[j]
list1[j] = list1[i]
list1[i] = temp
print(list1)
請(qǐng)輸入要插入的數(shù)字:7
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
- 有一個(gè)長(zhǎng)度是10的列表兼搏,數(shù) 組內(nèi)有10個(gè)人名卵慰,要求去掉重復(fù)的
list1 = ['孫悟空', '豬八戒', '沙悟凈', '唐僧', '觀音', '紅孩兒', '孫悟空', '唐僧', '蜘蛛精', '佛祖']
for i in list1[:]:
count = 0
for j in list1[:]:
if i == j:
count += 1
if count > 1:
list1.remove(j)
print(list1)
['豬八戒', '沙悟凈', '觀音', '紅孩兒', '孫悟空', '唐僧', '蜘蛛精', '佛祖']
- 把A列表的第三到第六位之間的元素刪除。
A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
del A[2:5]
print(A)
[1, 2, 6, 7, 8, 9, 10]
- 已知A列表佛呻,B列表裳朋,定義一個(gè)列表C,要求C包含A,B數(shù)組中的數(shù)據(jù)(無(wú)重復(fù)值)吓著。
A = [1, 2, 3, 4]
B = [3, 4, 5, 6]
C = []
for i in A[:]:
for j in B[:]:
if i == j:
A.remove(i)
C = A + B
print(C)
[1, 2, 3, 4, 5, 6]