摘要:結(jié)束索引,默認(rèn)為字符串的長度。列表這塊注意索引中的列表更像中數(shù)組的超集從頭開始從尾開始常用操作插入刪除還是一樣的知道函數(shù)容易做不知道函數(shù)也能做索引循環(huán)判斷自己造一個出來就行了列表允許修改增加方法用于在列表末尾添加新的對象。
本來我是不想肝了,但是看到了這個,
還有這幾個白嫖怪,
雖然我不知道你是誰,但是還是感謝,今天熬個夜來再肝一篇,秋名山路很長,也希望我們能一起走下去!
這個知識難亦或是不難,看你想要學(xué)到什么程度了,如果是期末不掛科的話,靠上一篇就已經(jīng)夠了,但是績點嘛,還是要學(xué)一點的
幾乎是每個語言都是一樣的,所以說我還是想啰嗦一下,當(dāng)你開始學(xué)算法的時候,會發(fā)現(xiàn)這個東西是真的快,天下武功,唯快不破
&按位與 相應(yīng)位為1,否則為0
|按位或 相應(yīng)位有一個1,就為1
^按位異或 當(dāng)倆對應(yīng)的二進(jìn)制位相異時,結(jié)果為一,
~按位取反,對于每個二進(jìn)制位取反操作
<< 左移 運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,高位丟棄,低位補(bǔ)0。
|>> 右移 把">>"左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干
a = 60 # 60 = 0011 1100b = 13 # 13 = 0000 1101c = 0c = a & b # 12 = 0000 1100print("1 - c 的值為:", c)c = a | b # 61 = 0011 1101print("2 - c 的值為:", c)c = a ^ b # 49 = 0011 0001print("3 - c 的值為:", c)c = ~a # -61 = 1100 0011print("4 - c 的值為:", c)c = a << 2 # 240 = 1111 0000print("5 - c 的值為:", c)c = a >> 2 # 15 = 0000 1111print("6 - c 的值為:", c)
and or not
3個,按照字面意思來理解
in x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True
這個還是有用的,在c++中要多帶帶定義函數(shù)
list1 = [1,2,3,4,5]x=1y=10if(x in list1): print("a in list")if(y not in list1): print("b not in list")
這個涉及到了對象,在期末編程解決問題的時候不用也能解決,
這個的考察形式有點像當(dāng)年奧賽初賽的考察形式,就是閱讀程序?qū)懘鸢傅念},不能用電腦??!,所以說要記憶
不得不說字符串的函數(shù)太多了,和c++還是有區(qū)別的,比c++多,使用也有些許不同,我根據(jù)題庫來挑幾個常用的,不要全記了,實在不會的話,暴力來解決,循環(huán)字符串,if判斷,來達(dá)到自己的需求
合并,索引基本操作上一篇已經(jīng)寫過了,所以這一篇我們來說一點比較有用的東西,全學(xué)完可能有點困難,畢竟我們的目標(biāo)是:不掛科
/ 轉(zhuǎn)義:注意’/n’換行操作
r’/n’輸出**/n.**
具體定義如下:
原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來使用,沒有轉(zhuǎn)義特殊或不能打印的字符。
a = "Hello"b = "Python" print("a + b 輸出結(jié)果:", a + b)print("a * 2 輸出結(jié)果:", a * 2)print("a[1] 輸出結(jié)果:", a[1])print("a[1:4] 輸出結(jié)果:", a[1:4]) if( "H" in a) : print("H 在變量 a 中")else : print("H 不在變量 a 中") if( "M" not in a) : print("M 不在變量 a 中")else : print("M 在變量 a 中") print (r"/n")print (R"/n")
格式化字符串,有點像強(qiáng)制轉(zhuǎn)換的意思,了解即可,寫題中可以不使用
常用的格式化字符串符號有以下幾個
%c:格式化字符及其ASCII碼
%s: 格式化字符串
%d:格式化整數(shù)
%o: 格式化無符號八進(jìn)制數(shù)
%x:格式化無符號十六進(jìn)制數(shù)
題外話:在 Python 中,字符串格式化使用與 C 中 printf 函數(shù)一樣的語法。
print ("我叫 %s 今年 %d 歲!" % ("小明", 10))
?多啊,怎么記?我就說一下我記的幾個吧,感覺這幾個還經(jīng)常使用
find 查找:檢測字符串中是否包含子字符串 str
語法:str.find(str, beg=0, end=len(string))
其中:str – 指定檢索的字符串
beg – 開始索引,默認(rèn)為0。
end – 結(jié)束索引,默認(rèn)為字符串的長度。
也就是說我們可以這樣寫
str1 = "Runoob example....wow!!!"str2 = "exam"; print (str1.find(str2))print (str1.find(str2, 5))print (str1.find(str2, 10))
通過len()函數(shù)返回字符串的長度
text="python"len(text)
當(dāng)你上面的都沒有記住時,請記住replace這個函數(shù) 替換
s = "abc12321cba" print(s.replace("a", ""))
也就相當(dāng)于一個刪除操作,將s中的a都替換為" "
該字符串在Python中是不可變的,因此此函數(shù)將返回一個新字符串,而原始字符串將保持不變。
這塊注意索引,python中的列表更像c中數(shù)組的超集
從頭開始
從尾開始
插入,刪除,還是一樣的知道函數(shù)容易做,不知道函數(shù)也能做,索引+循環(huán)+判斷,自己造一個出來就行了,列表允許修改
增加:append() 方法用于在列表末尾添加新的對象。
list = ["Google", "Runoob", 1997, 2000] print ("第三個元素為 : ", list[2])list[2] = 2001print ("更新后的第三個元素為 : ", list[2]) list1 = ["Google", "Runoob", "Taobao"]list1.append("Baidu")print ("更新后的列表 : ", list1)
刪除:del 語句
list = ["Google", "Runoob", 1997, 2000] print ("原始列表 : ", list)del list[2]print ("刪除第三個元素 : ", list)
如果你一個函數(shù)都不記的話也不是不行,然后我們循環(huán)來寫
#for 循環(huán)內(nèi)部使用變量 in 列表name_list = ["zhangsan","lisi","wangwu"]for name in name_list: # 循環(huán)內(nèi)部針對列表元素進(jìn)行操作 print(name)
元組與列表最大的不同,就是元組不允許修改,在python中提供了一個函數(shù)可以將元組修改為列表
list() 方法用于將元組或字符串轉(zhuǎn)換為列表。
相當(dāng)于一個強(qiáng)制轉(zhuǎn)換
#元組轉(zhuǎn)換列表aTuple = (123, "Google", "Runoob", "Taobao")list1 = list(aTuple)print ("列表元素 : ", list1)#字符串轉(zhuǎn)換列表str="Hello World"list2=list(str)print ("列表元素 : ", list2)
選看:元組為什么不能修改
我們從內(nèi)存的角度來看
>>> tup = ("r", "u", "n", "o", "o", "b")>>> tup[0] = "g" # 不支持修改元素Traceback (most recent call last): File "" , line 1, in <module>TypeError: "tuple" object does not support item assignment>>> id(tup) # 查看內(nèi)存地址4440687904>>> tup = (1,2,3)>>> id(tup)4441088800 # 內(nèi)存地址不一樣了
重新賦值的元組 tup,綁定到新的對象了,不是修改了原來的對象
考察的也不多,出來基本上沒有編程大題,所以秉承著不掛科的原則,我就不說了,我們來看條件語句+循環(huán)語句,這個才是期末考試的重點
這個應(yīng)該是高中學(xué)過的吧?
if a: print(a)elif b: print(b)else: print(c)
如果a為true,打印a
如果a為false,但是b為true,打印b
如果a,b都為false,則打印c
記得加 : 使用縮進(jìn)來區(qū)分
簡單的猜數(shù)字案例
number = 7guess = -1print("數(shù)字猜謎游戲!")while guess != number: guess = int(input("請輸入你猜的數(shù)字:")) if guess == number: print("恭喜,你猜對了!") elif guess < number: print("猜的數(shù)字小了...") elif guess > number: print("猜的數(shù)字大了...")
在嵌套 if 語句中,可以把 if…elif…else 結(jié)構(gòu)放在另外一個 if…elif…else 結(jié)構(gòu)中。
num=int(input("輸入一個數(shù)字:"))if num%2==0: if num%3==0: print ("你輸入的數(shù)字可以整除 2 和 3") else: print ("你輸入的數(shù)字可以整除 2,但不能整除 3")else: if num%3==0: print ("你輸入的數(shù)字可以整除 3,但不能整除 2") else: print ("你輸入的數(shù)字不能整除 2 和 3")
格式:while 判斷條件:
執(zhí)行語句……
值得注意的一點是python中沒有do……while……循環(huán)
例題:
n = 100 sum = 0counter = 1while counter <= n: sum = sum + counter counter += 1 print("1 到 %d 之和為: %d" % (n,sum))
還記得我高中最開始學(xué)循環(huán)的時候,有的算法題目不會,提交的時候給它整一個死循環(huán),來個玉石俱焚
var = 1while var == 1 : # 表達(dá)式永遠(yuǎn)為 true print(var)
for語句:
for 循環(huán)可以遍歷任何可迭代對象,如一個列表或者一個字符串
languages = ["C", "C++", "Perl", "Python"]for x in languages: print (x)
當(dāng)你入門的時候,應(yīng)該用過這樣一個函數(shù),range(),目的就是生成一個數(shù)列
for i in range(5,9)#區(qū)間 print(i)for i in range(5) print(i)for i in range(0,10,3)#間隔3,也可以說是步長為3 print(i)
break
n = 5while n > 0: n -= 1 if n == 2: break print(n)print("循環(huán)結(jié)束。")
continue
n = 5while n > 0: n -= 1 if n == 2: continue print(n)print("循環(huán)結(jié)束。")
例子:
循環(huán)字符串 Runoob,碰到字母 o 跳過輸出
for letter in "Runoob": # 第一個實例 if letter == "o": # 字母為 o 時跳過輸出 continue print ("當(dāng)前字母 :", letter) var = 10 # 第二個實例while var > 0: var = var -1 if var == 5: # 變量為 5 時跳過輸出 continue print ("當(dāng)前變量值 :", var)print ("Good bye!")
對比之下,可以變成檢測字符串中是否有一個字符,也就是我們,上面記憶的函數(shù),所以我才敢說字符串函數(shù)不用全部記憶
else:循環(huán)語句可以有 else 子句,它在窮盡列表(以for循環(huán))或條件變?yōu)?false (以while循環(huán))導(dǎo)致循環(huán)終止時被執(zhí)行,但循環(huán)被 break 終止時不執(zhí)行。
for n in range(2, 10): for x in range(2, n): if n % x == 0: print(n, "等于", x, "*", n//x) break else: # 循環(huán)中沒有找到元素 print(n, " 是質(zhì)數(shù)")
pass語句:這個是為了程序的完整性而出現(xiàn)的,沒有實際的意義
for letter in "Runoob": if letter == "o": pass print ("執(zhí)行 pass 塊") print ("當(dāng)前字母 :", letter) print ("Good bye!")
還是老樣子,原創(chuàng)不易,求個三連,感謝各位的支持,我是那個陪你頭禿,陪你變強(qiáng)的小碼民!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/124517.html
摘要:易于維護(hù)的成功在于它的源代碼是相當(dāng)容易維護(hù)的??梢浦不谄溟_放源代碼的特性,已經(jīng)被移植也就是使其工作到許多平臺。集合集合是由一個或數(shù)個形態(tài)各異的大小整體組成的,構(gòu)成集合的事物或?qū)ο蠓Q作元素或是成員?;竟δ苁沁M(jìn)行成員關(guān)系測試和刪除重復(fù)元素。 ...
摘要:對于沒有任何計算機(jī)基礎(chǔ)的我,面臨的挑戰(zhàn)很多非相關(guān)專業(yè),去找計算機(jī)專業(yè)工作會有很多障礙。學(xué)習(xí)階段剛開始是學(xué)習(xí)語言,由于計算機(jī)專業(yè)大一就開始上課,所以我就去晚上去蹭語言的選修課,選修課老師講的比較淺,這也對我這個沒有一點基礎(chǔ)的人比較友好。 說起跨專業(yè),可能有好多同學(xué)都望而生畏,總覺得別人計算機(jī)專業(yè)的學(xué)生學(xué)了三年才找工作,我跨專業(yè)還怎么比得過別人? 其實不是這樣的,覺得自己不行其實都是你還沒...
閱讀 2990·2021-11-23 09:51
閱讀 3808·2021-11-22 15:29
閱讀 3256·2021-10-08 10:05
閱讀 1585·2021-09-22 15:20
閱讀 1004·2019-08-30 15:56
閱讀 1102·2019-08-30 15:54
閱讀 763·2019-08-26 11:54
閱讀 2656·2019-08-26 11:32