-
python 遍歷一個dict、set類型的同時,并且在改變這個變量的長度或者一邊遍歷一邊修改,這時候就會拋出這錯誤:RuntimeError: Set changed size during iteration
注意!
該小節的作業建議多次做,看了答案后才做對,剛開始想的是用兩個for 循環,但是會出現上述報錯的情況。
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
S = set([1, 3, 5, 7, 9, 11])
for s in S:
? ?for l in L:
? ? ? ?if l==s:
? ? ? ? ? ?print('l=s')
? ? ? ? ? ?S.remove(s)
? ? ? ?else:
? ? ? ? ? ?print('l!=s')
? ? ? ? ? ?S.add(l)
print(S)查看全部 -
names=['Jenny', 'Ellena', 'Alice', 'Candy', 'David', 'Hally', 'Bob', 'Isen', 'Karl']
s=set()
for i in names:
? ?s.add(i)? ? ? ? ? ? ? ? ? ? ? ? #注意這里可以用for,沒必要一個一個的add
print(s)
s.update(names)
print(s)查看全部 -
names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
new_names=[]? ??#注意,這里用了一個空列表來存放小寫的名字,如果直接用names來存放,會導致for循環死循環,應該是因為每循環一次,列表就多了一個元素,所以會死循環
for i in names:
? ?name_lower=i.lower()
? ?new_names.append(name_lower)
print(new_names)#輸出['alice', 'bob', 'candy', 'david', 'ellena']
#往大寫的列表里添加小寫列表
for i in new_names:
? ?if i not in names:
? ? ? ?names.append(i)
print(names)??#['Alice', 'Bob', 'Candy', 'David', 'Ellena', 'alice', 'bob', 'candy', 'david', 'ellena']
if 'bob' in names:
? ? print('Yes')? ? ? ? ? ? ? ? ? ? #輸出Yes
else:
? ?print('No')查看全部 -
s=set(['Alice', 'Bob', 'Candy', 'David', 'Ellena'])
print(s)
names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
name_set = set(names)
print(name_set)查看全部 -
3-3? 整數和浮點數
? 一、整數和浮點數? 可以進行? 加減乘除? 四則運算
? 二、PY數字支持 用% 進行取模運算,既a/b的余數,如:
? ? print(3%2)? ?取模運算的結果=1
? ? print(33%5)? ? ? ? ? ? ? ? ? ? ? ? ?=3
? ? ? ? ? 取模運算的一個重要運用:可以判斷一個數是否為偶數,但必須是這個數對2取模運算,當結果為0時,這個為偶數,否則為奇數。如:? ?print(3%2)? 結果是1? ,因此3為奇數
? ? ? ? ? print(100%2) 結果是0,因此100是偶數
? 三、地板除? 既取a除以b結果的整數部分,用//表示,如:
? ? ? 10//4? ?--->2? ? ? ? ? ? ?10//3? ?--->3
? 四、除法保留小數點后若干位的方法:用round()函數,()括號內必須有兩個參數:前一個參數是要保留小數點位數的數值,后一個參數是要保留的位數。如:
? ? ? ? a=10/3? ?# 先定義變量a??
? ? ? ?round(a,2)? ?--->3.33? ?#直接用round()函數輸出? 得到的結果是保留兩位小數的變量a的結果
? ? ? ?再如:一個長方形的長為3.14cm,寬為1.57cm,請計算這個長方形的面積,保留小數點后兩位。
? ? ? ?a=3.14
? ? ? ?b=1.57
? ? ? ?round(a*b,2)---->4.93
? 或? a=3.14*1.57
? ? ? ?round(a,2)? ------>4.93
查看全部 -
#方法一:
d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
count=0
for key in d.values():
? ?count=count+1
print(count)
#方法二:
d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
keys = d.keys()
print(len(keys))查看全部 -
d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
for key,value in d.items():
? ?for score in value:? ? ? ? ? ?#注意為了滿足依次輸出,還需加上此條件
? ? ? ?print(key,score)查看全部 -
一、python 的數據類型:
? (一)整數(int)? 如:1,22,-85.........
? (二)浮點數? ? ? ? ? 如:0.5 , 3.14159 ,-0.875? 。。。。。。
? ? ? ? ? ? ? ? ? ? 也可以用科學計數法,把10用e代替,如:1.23*10^9(10的9次方)就是1.23e9? ? ? ? ?0.000012就是1.2e-5? (三)字符串? ? ? ?一個句子 或 一段話? ?必須以''或“”括起來? ?如:'abc'...
? (四)布爾值? ? ? ?對? 或? 錯? (true 或 false)
? ? 可用and? ?or? not? 運算,其中:
? ? ? ? ? ?and 是“與”運算,當所有都為 True,and運算結果才是 True。
? ? ? ? ? ?or? ? 是“或”運算,只要有一個為True,? or運算的結果就是True
? ? ? ? ? ?not? 是“非”運算,它是一個單目運算符,把 True 變成 False,False 變成 True。? (五)空值? ?用None 表示? ? ?與數字‘0’不同
查看全部 -
tuple的元素也可以是tuple,請判斷以下定義T的元素中,有多少個tuple。
T = ((1+2), ?((1+2),), ('a'+'b'), (1, ), (1,2,3,4,5))
參考答案:
3個
第一個元素(1+2),第三個元素('a'+'b'),計算的結果分別是數字3和字符串ab,不是tuple。查看全部 -
有三個長方體,他們的長寬高分別是[1, 2, 3], [5, 3, 2], [7, 3, 2],定義在數組L中,L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]],請分別求出三個長方體的表面積。
#自己的代碼比較死板,加上for循環會好很多
print("#長方體的表面積=(長×寬+長×高+高×寬)×2")
L = [[1, 2, 3], [5, 3, 2], [7, 3, 2]]
L1= (L[0][0]*L[0][1] + L[0][0]*L[0][2] + L[0][1]*L[0][2])*2
print(L1)
L2= (L[1][0]*L[1][1] + L[1][0]*L[1][2] +L[1][1]*L[1][2] )*2
print(L2)
L3= (L[2][0]*L[2][1] + L[2][0]*L[2][2] + L[2][1]*L[2][2] )*2
print(L3)
#標準答案思路
L = [[1,2,3], [5, 3, 2], [7,3,2]]
for i in L:? ? ? ? ?#留意下這里二維列表的遍歷結果: [1, 2, 3]、[5, 3, 2]、[7, 3, 2]
? ?length=i[0]? ? ?#這里print(length)的結果:1 5 7,第一次循環時,cube是[1, 2, 3],所以cube[0]就是1,以此類推,就把所有長方體的長給取出來了
? ?width=i[1]#第一次循環時,cube是[1, 2, 3],直接通過下標把一個長方體的長寬高取出來
? ?height=i[2]
? ?result=( length*width + length*height + width*height )*2
? ?print(result)查看全部 -
s1 = 'ABC' s2 = '123' for x in s1: ? ? for y in s2: ? ? ? ? print(x + y)查看全部
-
整數(十進制,二進制,十六進制)
浮點數
布爾值
空值none查看全部 -
1、使用終端運行python程序
2、使用編輯器運行python程序查看全部 -
編輯環境、運行環境查看全部
-
使用縮進作為邏輯層次查看全部
舉報