国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python 歷險記——一個 Java 程序員的告白(一)

leejan97 / 2014人閱讀

摘要:元組也支持內置函數的參數必須是一個序列字符串列表元組元組有什么用既然中有這么個數據結構,自然就有它的用武之地。

引言

想學爬蟲還是 python 專業啊,之前一直在用 java, 現在決定嘗嘗鮮,使用 python及爬蟲框架來完成網絡數據采集。
編程語言之間都是相通的,比如都需要模塊化,引入其他文件來實現功能,使用列表等容器來處理數據,都要使用 jsonxml 來解析和傳輸數據。
你會發現通過 類比 的方式,帶著問題去學習,你會發現走的很快
而且我認為代碼示例的作用是 異常強大的, 我會盡量使用代碼示例的方式來展示,以滿足同學快速學習的需要,也備后續查詢。

下面就是在 使用 python 過程中的問題總結,okay,讓我們一起來歷險吧~

String 有哪些有用的方法?

不管是哪種語言,用的最多的類型估計都是 string (字符串),要想快速入門 python, 掌握 string 也是必須的。

在 java 中使用最多的 string 功能,我也會帶著同樣的疑問來了解 python 該使用什么方法實現。如果這里沒有你要找的方法,可以到 python string 官方地址完整方法去查詢

如何拼接字符串?

使用 + 號來拼接,要注意的是,當有數字的時候一定要轉化為字符串格式 str(value) 才能夠相加,不然會報錯。

使用%進行拼接,和占位符的概念比較類似,這里舉個栗子

hour = 9
minutes = 45
print("it"s %d:%d minutes!" %(hour, minutes))
如何分隔字符串?
# 對字符串分割
split_str = "a-b-c-d"
print(split_str.split("-"))
如何獲取字符串長度
# 獲取字符串的長度
print(len("banana"))
如何將 list 拼接成字符串
# 以 - 做間隔,拼接字符串
join_str_list = ["a", "b", "c", "d"]
print("-".join(join_str_list)) # 這里就是用 - 拼接后的值
如何分割字符串?
split_str = "a-b-c-d"
print(split_str.split("-"))
如何去除字符串中的空格?

去除字符串中空格分為 3 種

去除兩端的空格

去除左邊的空格

去除右邊的空格

# 去除字符串中的空格
strToStrip = "   abc   "
print(strToStrip.strip()) # 去除兩端空格
print(strToStrip.lstrip()) # 去除左邊空格
print(strToStrip.rstrip()) # 去除右邊空格
如何子字符串是否包含在父字符串中?
child_str = "abc"
print("abcd".find(child_str)) # 如果存在就返回首字母下標,不存在返回 -1
python 有哪些有用的容器?

學過 java 的都知道,在 java 中使用最多的容器有 List, Map, Set, Array,這些容器可以讓我們方便的存儲并操作數據,那么 python 中又有哪些類似的容器可供我們使用呢?

列表 list

python 中也有列表,功能包含了 java 列表,而且更牛的是它可以 包含不同類型的元素
。

["a", 10, 1.5] # 這就是一個列表,只需要方括號包起來即可
如何遍歷一個列表

有兩種方式可實現

for 循環的方式,這當然是最常見的

list = ["a", 1, 1.4]

for item in list:
  print(item)

在只需要讀取列表的元素本身時這種方式當然很優雅。但如果需要獲取元素的下標,就力不從心了,這就需要下面的方式。

使用內置函數 range 和 len, 操作元素下表

list = ["a", 1, 1.4]
for i in range(len(list)):
  list[i] = list[i] * 2
  print(list[i])
如何對列表切片?

pyton 中專門有切片操作符 :, 想切多厚切多厚,這可比 java 要方便不少。
通過例子來感受下吧。

alpha_list = ["a", "b", "c", "d", "e", "f", "g"]
print(alpha_list[1:3]) # ["b", "c"]
print(alpha_list[:4]) # ["a", "b", "c", "d"]
print(alpha_list[2:]) # ["c", "d", "e", "f", "g"]
print(alpha_list[:]) # ["a", "b", "c", "d", "e", "f", "g"]
如何給列表添加元素?

有四種方式

在列表尾部添加元素 append(value)

將一個列表中的每個元素分別添加到另一個列表上 extend(list)

將一個元素插入到列表的指定位置 insert(index, value)

+ 號,將兩個 list 直接相加, 會返回一個新的 list 對象

碼字太多了,自己都暈了,直接上代碼。

list1 = ["a", "b", "c", "d"]
list1.append("e")
print(list1) # ["a", "b", "c", "d", "e"]

list2_1 = ["a", "b", "c", "d"] 
list2_2 = ["e", "f", "g"]
list2_1.extend(list2_2)
print(list2_1) # ["a", "b", "c", "d", "e", "f", "g"]


list3 = ["a", "c", "d"]
list3.insert(1, "b") # ["a", "b", "c", "d"] 
print(list3)

# 內存多余消耗,不推薦
list4_1 = ["a", "b"]
list4_2 = ["c", "d"]
print(list4_1 + list4_2) # ["a", "b", "c", "d"]
刪掉元素

也有幾種方法可實現

修改列表,彈出被刪除的值 pop(index)

知道要刪除的元素時 remove(value)

不需要使用刪除的值時 del(index)

刪除多個值 del(index_begin, index_end)

上代碼

remove_list_1 = ["a", "b", "c"]
print(remove_list_1.pop(0))
print(remove_list_1)# ["b", "c"]

remove_list_2 = ["a", "b", "c"]
del remove_list_2[1]
print(remove_list_2)# ["a", "c"]


remove_list_3 = ["a", "b", "c"]
remove_list_3.remove("b")
print(remove_list_3) # ["a", "c"]

remove_list_4 = ["a", "b", "c"]
del remove_list_4[1:2]
print(remove_list_4)# ["a", "c"]
字典 dict

dict 和 java 中 Map 非常類似,也是由 keyvalue 組成的,也是
使用 散列表 的算法存儲, 用過 java 的同學就直接把它當做 Java HashMap 來用就可以啦。另外,在語法上要比 java 也要簡潔不少。

創建 dict 添加元素
a_dict = dict() # 這樣就創建了一個空字典
a_dict["one"] = 1 # 塞進去一個元素

not_empty_dict = {"one": 1, "two": 2, "three": 3} # 這是一個包含數據的字典
遍歷 dict

使用 for 循環遍歷所有字典,可以遍歷字典中的 key,這樣的遍歷是沒有特定順序的,如果想按照順序遍歷需要使用內置函數 sorted

d = {"b": 2, "a": 1, "c": 3}

for item_key in d:
  print(item_key, d[item_key])


for item_key in sorted(d):
 print(item_key, d[item_key])

那我如果想要遍歷 dict 中的 values 呢?
還真有一個方法叫 values(), 它會返回一個值集合,并可以應用 in 操作符遍歷

d = {"b": 2, "a": 1, "c": 3}

for value in d.values():
  print(value)

for sorted_value in sorted(d.values()):
  print(sorted_value)
元組

什么是元組? java 中可沒有聽過內置元組這樣的數據結構。

在前面已經講了列表,知道一個列表可以存儲多個數據結構。元組和列表很像,但要記住它們間的一個重要區別: 元組是不可變的

如何創建元組?

把各個類型的元素用逗號分隔,就可以得到一個元組,為了好看,常常用括號再圍起來

使用內置函數 tuple() 也可以創建元組

注意,由于元組是不可變的,無法修改它的元素。但我們可以使用將多個元組結合成一個新的元組。(元組也支持 +

tuple_a = 1, 2, 3, 4, 5

tuple_b = (1, 2, 3, 4, 5)

# tuple 內置函數的參數必須是一個序列
tupe_c = tuple("12345") # 字符串 
tuple_e = tuple([1, 2, 3, 4, 5]) # 列表
tuple_f = tuple((1,2,3,4,5)) # 元組

tuple_d = tuple_a + tuple_b
print(tuple_d)
元組有什么用?

既然 python 中有這么個數據結構,自然就有它的用武之地。還別說,它的用途還真不少。

交換變量對多個變量賦值 更方便,優雅了

a = 5
b = 4
a,b = b,a
# 等式左邊是一個變量的元組
# 等式右邊是表達式的元組,可以是(字符串,列表,元組都行)

c,d = (1,2), [1,2,3]
print(c)
print(d)

可以在函數中返回多個值,將它們裝到元組里就行

def min_max(list):
  return min(list), max(list)

num_list = [3, 1, 5, 2]
print(min_max(num_list))
其他

上面講述的都是一些大的主題,除了這些,還有一些相對小些的。
雖然小,但也很重要。這些小且重要的部分都在這個部分存放吧。

全局變量是如何處理的?

我們知道 java 中由于變量類型的存在,可以在一個 class 內聲明全局變量,從而在 class 的各個方法中讀取和賦值。

而這點在 python 中卻是行不通的,因為 python 中沒有變量類型, 如果在文件中聲明一個全局變量,再在函數內對這個變量賦值,會直接導致錯誤產生。這是因為在函數內又重新創建了一個局部變量。讀取全局變量也有這個問題。

那該怎么辦呢?嗯~o( ̄▽ ̄)o global 關鍵字就要登場了。

在函數內部,使用全局變量前,先用 global 關鍵字聲明下這個變量,表示這個變量是全局變量,后面再使用就 okay啦。

上栗子...

g_variable = 3

def test_g_variable():
  global g_variable
  print(g_variable) # 3
  g_variable = 2
  print(g_variable) # 2

test_g_variable()
結語

上面并沒有把 python 講完,還類和對象,文件JSON處理, XML 處理 等重要主題,這些會在下篇文章中涉及,敬請期待。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72018.html

相關文章

  • python 險記—— Java 序員告白

    摘要:元組也支持內置函數的參數必須是一個序列字符串列表元組元組有什么用既然中有這么個數據結構,自然就有它的用武之地。 引言 想學爬蟲還是 python 專業啊,之前一直在用 java, 現在決定嘗嘗鮮,使用 python及爬蟲框架來完成網絡數據采集。編程語言之間都是相通的,比如都需要模塊化,引入其他文件來實現功能,使用列表等容器來處理數據,都要使用 json 或 xml 來解析和傳輸數據。你...

    newtrek 評論0 收藏0
  • Java開發

    摘要:大多數待遇豐厚的開發職位都要求開發者精通多線程技術并且有豐富的程序開發調試優化經驗,所以線程相關的問題在面試中經常會被提到。將對象編碼為字節流稱之為序列化,反之將字節流重建成對象稱之為反序列化。 JVM 內存溢出實例 - 實戰 JVM(二) 介紹 JVM 內存溢出產生情況分析 Java - 注解詳解 詳細介紹 Java 注解的使用,有利于學習編譯時注解 Java 程序員快速上手 Kot...

    LuDongWei 評論0 收藏0
  • 【Pygame實戰】嗷大喵險記序員吸貓指南:真太上頭了~

    摘要:嗷大喵和他的小伙伴們快樂的生活在一起,他們總是能給大家帶來歡樂。大家都說嗷大喵真棒。大家要做的就是解救嗷大喵遠離惡龍。 導語 哈嘍~大家好,我是木子,首先今天木子先給大家講個小故事: 在喵界有這樣一只網紅——混跡于二次元、表情包界,賤萌活潑,調皮機靈,白色的大圓臉,脖子 上系了個鈴鐺,年齡不...

    dreamans 評論0 收藏0
  • java 基礎 - 收藏集 - 掘金

    摘要:基礎知識復習后端掘金的作用表示靜態修飾符,使用修飾的變量,在中分配內存后一直存在,直到程序退出才釋放空間。將對象編碼為字節流稱之為序列化,反之將字節流重建成對象稱之為反序列化。 Java 學習過程|完整思維導圖 - 后端 - 掘金JVM 1. 內存模型( 內存分為幾部分? 堆溢出、棧溢出原因及實例?線上如何排查?) 2. 類加載機制 3. 垃圾回收 Java基礎 什么是接口?什么是抽象...

    makeFoxPlay 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<