1. 程式人生 > 其它 >#莫比烏斯反演,杜教篩#洛谷 6055 [RC-02] GCD

#莫比烏斯反演,杜教篩#洛谷 6055 [RC-02] GCD

Python 是一種面向物件解釋型計算機程式設計語言

什麼是Python的執行環境

  • Python需要Python直譯器(軟體)
  • PHP需要PHP超文字預編譯器(軟體)
  • Java需要JVM虛擬機器

輸入&輸出

#接收輸入資訊
username = input("請輸入使用者名稱")
password = input(“請輸入密碼”)

#列印
print(username)
print(password)

#print特殊用法
1.一次性可以列印多個數據print("xiaosan","美麗","想要")
2.每次print結束自動換行
3.如果想讓print()不換行,應該print(資料,end="")

變數

type(變數):獲取變數的資料型別

id(變數):獲取變數的地址值

身份運算子

is 概念:判斷變數的地址是否相同(如果地址相同內容肯定相同)

語法:a,b兩個變數,判斷地址是否相同,返回bool值(True,False)

is: a is b == True,地址值一樣

is not: a is not b == True,地址值不一樣

is:判斷變數的地址是否相同

簡單資料型別值相同,變數地址就相同,如整型,字元型

複雜資料型別值相同,變數地址不相同,如列表

==:判斷值是否相同

六大資料型別

數字、字串、列表、字典、元組、集合

python file write之後無法read的原因和處理辦法

方法一:

with open('lei.txt','a+') as file_obj:
  file_obj.write("234")
with open('lei.txt', 'r') as file_obj1:
  content = file_obj1.read()
  print(content)

方法二:

with open('lei.txt','a+') as file_obj:
  file_obj.write("234")
  file_obj.seek(0)
  content = file_obj.read()
  print(content)

'r'->只讀

'w'->只寫,檔案已存在則清空,不存在則建立。

'a'->追加,寫到檔案末尾

'b'->二進位制模式,比如開啟影象、音訊、word檔案。

'+'->更新(可讀可寫)

一些人可能會有迷惑,既然帶'+'號是可讀可寫,那'w+''r+'有什麼不同。

那就是,

'w+'會清空,會建立 (檔案已存在則清空,不存在則建立。)

'r+'不清空,不建立

"a+":追加讀寫。與"a"模式類似,但可以讀

pickle模組/json模組

https://www.cnblogs.com/yyds/p/6563608.html

將物件轉換為可通過網路傳輸或可以儲存到本地磁碟的資料格式(如:XMLJSON或特定格式的位元組串)的過程稱為序列化;反之,則稱為反序列化。

dumps就是序列化:將Python物件轉換成json字串/

dump就是序列化並儲存到一個檔案:將Python物件轉換成json字串並存儲到檔案中

loads就是反序列化:將json字串轉換成Python物件

load就是從一個檔案中取出來反序列化:讀取指定檔案中的json字串並轉換成Python物件

使用pickle很簡單,只需匯入所需的模組,然後使用dump()儲存資料,以後某個時間使用load()恢復資料。處理醃製資料的唯一要求是,必須以二進位制訪問模式開啟這些檔案:

import pickle

with open("mydata.pickle","wb") as mysavedata:

  pickle.dump([1,2,"three"],mysavedata)

...

with open("mydata.pickle","rb") as myrestoredata:

  a_list=pickle.load(myrestoredata)

  print(a_list)


import pickle

data={'k1':123,'k2':’Hello’}

#pickle.dumps 將資料通過特殊的形式轉換為只有python語言認識的字串
p_str=pickle.dumps(data)
print(p_str)

#pickle.dump將資料通過特殊的形式轉換為只有python語言認識的字串,並寫入檔案
with open('D:/result.pk','w') as fp:
pickle.dump(data,fp)

Json模組也提供了四個功能:dumpsdumploadsload,用法跟pickle一致

JSON:

優點:跨語言(不同語言間的資料傳遞可用json交接)、體積小

缺點:只能支援int\str\list\tuple\dict

Pickle:

優點:專為python設計,支援python所有的資料型別

缺點:只能在python中使用,儲存資料佔空間大

類的繼承概念

__init__”這個建構函式,具有初始化的作用,也就是當該類被例項化的時候就會執行該函式。那麼我們就可以把要先初始化的屬性放到這個函式裡面。

__del__”就是一個析構函數了,當使用del 刪除物件時,會呼叫他本身的解構函式,另外當物件在某個作用域中呼叫完畢,在跳出其作用域的同時解構函式也會被呼叫一次,這樣可以用來釋放記憶體空間。

python對資料排序有兩種方式

原地排序 sort()

複製排序 sorted()

>>>data=[6,3,1,2,4,5]

>>>data.sort()

>>>data

[1,2,3,4,5,6]

>>>data=[6,3,1,2,4,5]

>>>data2=sorted(data)

>>>data

[6,3,1,2,4,5]

>>>data2

[1,2,3,4,5,6]

預設地,sort()方法和sorted()BIF都會按升序對資料排序。要以降序對資料排序,需要向sort()或者sorted()傳入引數

reverse=True,python會負責具體處理。

正則表示式的元字元有. ^ $ * ? { [ ] | ( )

.表示任意字元

[]用來匹配一個指定的字元類別,所謂的字元類別就是你想匹配的一個字符集,對於字符集中的字元可以理解成或的關係。

^ 如果放在字串的開頭,則表示取非的意思。[^5]表示除了5之外的其他字元。而如果^不在字串的開頭,則表示它本身。

具有重複功能的元字元:

* 對於前一個字元重複0到無窮次

+對於前一個字元重複1到無窮次

?對於前一個字元重複01

{m,n} 對於前一個字元重複次數在為mn次,其中,{0,} = *,{1,} = + , {0,1} = ?

{m} 對於前一個字元重複m

\d 匹配任何十進位制數;它相當於類 [0-9]

\D 匹配任何非數字字元;它相當於類 [^0-9]

\s 匹配任何空白字元;它相當於類 [ fv]

\S 匹配任何非空白字元;它相當於類 [^ fv]

\w 匹配任何字母數字字元;它相當於類 [a-zA-Z0-9_]

\W 匹配任何非字母數字字元;它相當於類 [^a-zA-Z0-9_]