1. 程式人生 > >Python3學習開始(JAVA 轉 Python)

Python3學習開始(JAVA 轉 Python)

一、python展望:python應用非常廣泛,是一種解釋型萬金油指令碼語言。因為好用,輕巧,靈活深受開發者喜愛。不過因為是解釋型指令碼語言,所以安全性、一些動態編譯等高階功能可能實現起來有很大難度,而且缺少一些類似於spring的重量級框架支援,所以java與python共分天下的的局面可能需要持續很長一段時間。預計以後java負責系統前端與系統對接,python負責業務邏輯與指令碼的實現(多語言並存的局面)。可能以後會有更輕便的語言替代python,會有功能更強大的JVM語言替代java。誰知道呢!(咱們都學,反正思想不變,都是工具而已)

Python目前適合做的事情:指令碼、爬蟲、資料分析處理。

二、python 註釋:單行註釋以 # 開頭;多行註釋用三個單引號 ''' 或者三個雙引號 """ 將註釋括起來(前面有賦值語句,這也是表示跨行字串的意思

三、python指令碼檔案中開頭必寫的兩行註釋(指定用什麼直譯器執行指令碼以及直譯器所在的位置;用來指定檔案編碼為utf-8;):

#!usr/bin/python3
# -*- coding: utf-8 -*-

四、python對大小寫是敏感的。

運算子 +,-,* ,/ 和  () 與其它語言一樣。除法 / 永遠返回一個浮點數。如要使用 除法 並且得到整數結果(丟掉任何小數部分),你可以使用 // 運算子;要計算餘數你可以使用 % 。還可以使用 ** 運算子進行冪乘方運算(5**2,即5的二次方)。 = 用於給變數賦值。(互動模式中,最近一個表示式的值會自動賦給變數 _ ,phthon作為計算器使用時,這個可以用的上。)還有標準比較操作符 < , > , == , <=, >= 和 != 。

Python的字串:單引號 ('...') 或雙引號 ("...") 來標識。\ 可以用來轉義特殊字元。如果需要列印字串 \ ,需要在整個字串前面加上 r ,表示這個字串不進行轉義,原樣輸出。(建議字串還是用雙引號標記比較好)字串可以由 + 操作符連線(粘到一起),可以由 * 表示重複多次。相鄰的兩個字串文字自動連線在一起(沒有使用 + ),但是這樣總感覺不是很規範,應避免這麼去操作。字串也可以被擷取(檢索),字串的第一個字元索引為 0 ,索引也可以是負數,這將導致從右邊開始檢索(例如:word[-1])。除了索引,還支援切片。索引用於獲得單個字元的字串,切片讓你獲得一個子字串,切片的索引有非常有用的預設值;省略的第一個索引預設為零,省略的第二個索引預設為切片的字串的大小。(例如:word[-2:])一個過大的切片索引值(即下標值大於字串實際長度)將被字串實際長度所代替,當上邊界比下邊界大時(即切片左值大於右值)就返回空字串。Python字串不可以被更改(這跟java有點類似),因此賦值給字串索引的位置會導致錯誤。內建函式 len() 返回字串長度。

複合資料型別-list(列表): 列表的元素可以是多個型別(真正的泛型)(例: word=[1,"var",4234123])。列表可以被索引和切片。可以使用 append() 方法在列表的末尾新增新的元素;也可以對切片賦值,此操作可以改變列表的尺寸;內建函式 len() 同樣適用於列表;列表也可以互相巢狀。

縮排是 Python 組織語句的方法,要為每一個縮排行輸入 TAB或者空格 (一般建議使用四個空格,TAB棄用),同一個語句塊中的每一行必須縮排同樣數量的空白。 while 、if、for等這些流程控制功能的程式碼體都是需要縮排的,不然會解析失敗。

用一個逗號結尾就可以禁止輸出換行,例如: print(str1, end=',')

while語句:while ... : 

                        …

if語句:if … :

                   ...

             elif … :

                    ...

             elif … : 

                     ...

             else:

                      …

for語句: for 語句依據任意序列(連結串列或字串)中的子項,按它們在序列中的順序來進行迭代(類似於foreach用法)

            例:for w in words: 

                        …

             range() 函式可建立一個整數列表,一般用在 for 迴圈中。

range(start, stop[, step])(start, stop[, step])

引數說明:

  • start: 計數從 start 開始。預設是從 0 開始。例如range(5)等價於range(0, 5);
  • stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5
  • step:步長,預設為1。例如:range(0, 5) 等價於 range(0, 5, 1)

例:

a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
...     print(i, a[i])

...



range() 函式返回的物件表現為它是一個列表,但事實上它並不是,我們稱此類物件是 可迭代的 。list() 函式從可迭代(物件)中建立列表。

for、while迴圈可以有一個 else 子句;它在迴圈迭代完整個列表(對於 for )或執行條件為 false (對於 while )時執行,但迴圈被 break 中止的情況下不會執行。break 和 continue 語句和java中功能類似。

pass 什麼也不做。它用於那些語法上必須要有什麼語句,但程式什麼也不做的場合。pass 可以默默的被忽視(可以當TODO使用)。

關鍵字 def 引入了一個函式 定義。在其後必須跟有函式名和包括形式引數的圓括號。函式體語句從下一行開始,必須是縮排的。函式體的第一行語句可以是可選的字串文字,這個字串是函式的文件字串docstrings,還可以自動生成線上的或可列印的文件,建議要書寫。函式名指代的函式體可以作為變數值賦給變數,然後這個變數就可以被當做函式使用。這可以作為通用的重新命名機制。return 語句從函式中返回一個值,不帶表示式的 return 返回 None。過程結束後也會返回 None。

建議把空格放到操作符兩邊,以及逗號後面,但是括號裡側不加空格:a = f(1, 2) + g(3, 4)

相關推薦

Python3學習開始JAVA Python

一、python展望:python應用非常廣泛,是一種解釋型萬金油指令碼語言。因為好用,輕巧,靈活深受開發者喜愛。不過因為是解釋型指令碼語言,所以安全性、一些動態編譯等高階功能可能實現起來有很大難度,而且缺少一些類似於spring的重量級框架支援,所以java與python共

刷題練習記錄1——兩數之和JAVAPython

【題號001】兩數之和 Two Sum 給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例:   給定 nums = [2, 7, 11, 15], target = 9     因為 nums[0] + n

刷題練習記錄2——兩數相加JAVAPython【連結串列】

【2】兩數相加 給出兩個 非空 的連結串列用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 單位 數字。 如果,我們將這兩個數起來相加起來,則會返回出一個新的連結串列來表示它們的和。 您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。 示例:

AES ECB加密實現java/php/python

這裡做個一個加密實現的記錄,方便以後查詢 AES加密 ECB模式 PKCS5填充 128位密碼/密碼塊 ECB模式是將明文按照固定大小的塊進行加密的,塊大小不足則進行填充。ECB模式沒有用到向量。 python 實現 # -*- coding=u

559. N叉樹的最大深度Javapython

給定一個N叉樹,找到其最大深度。 最大深度是指從根節點到最遠葉子節點的最長路徑上的節點總數。 例如,給定一個 3叉樹 : 我們應返回其最大深度,3。 說明: 樹的深度不會超過 1000。 樹的節點總不會超過 5000。 Java: /* // Defin

劍指offer:矩陣中的路徑JavaPython

補上自己上週做的題,上週忘記寫了,希望不會忘記。。。 決定從今往後先用Java解題了,Python實現有的時候太輕鬆,輕鬆的不真實;而且Python無論是對資料結構的封裝還是操作,來的太容易;作為一個主體語言依然用Java的我而言,還是先精通Java

StackOverflow 週報 - 高質量問題的問答JavaPython

這是 Stack Overflow 第三週週報,本週加入了 Python 的內容,原計劃兩篇 Java、兩篇 Python。但明天過節所以今天就先把週報發了,兩篇 Java、一篇 Python。公眾號「渡碼」為日更,歡迎關注。 DAY1. 使用隨機數列印"hello world" 今天我們看一個

StackOverflow 週報 - 第四周高質量問題的問答JavaPython

這是 Stack Overflow 第三週週報,由於本週週四外出,所以只有三篇內容。兩篇 Java、一篇 Python。公眾號「渡碼」為日更,歡迎關注。 DAY1. 列舉物件 == 和 equals 區別 我們在比較列舉常量時可以使用 == 運算子或者 equals 方法,如:  

Python3學習筆記urllib模塊的使用

nal 方法 utf 網址 pin des IE tps erer 原文地址:https://www.cnblogs.com/Lands-ljk/p/5447127.html 1.基本方法 urllib.request.urlopen(url, data=None, [ti

python3學習筆記Python初識

區別 說明 from 學習筆記 情況 不能 col 需要 學習 一、算法 在開始認真地編程之前,首先來解釋下什麽是計算機程序設計。簡單地說,它就是告訴計算機要做什麽。計算機可以做很多事情,但是它不會自己思考,需要我們告訴它具體細節,並且使用計算機能夠理解的語言把算法告

Requests庫函式的學習python網路爬蟲

一、請求方式 HTTP常用的請求方式是GET和POST,Requests對此區分兩種不同的請求方式。 (1)GET請求 Requests的GET請求分為兩種:不帶引數和帶引數。判斷URL是否帶有引數,通過對“?”進行判斷,“?”表示帶有引數。 import requests # 第一

Python3學習筆記:用Python實現深度優先

這裡主要是用Python實現下深度優先的概念,由於程式碼寫得比較隨意,就沒有封裝成類,而是寫成一個函式 用一個列表做為實驗資料,模擬成二叉樹結構,用遞迴的方式不斷獲取二叉樹上的左節點,一直到左節點 序號超出列表範圍,然後迴歸獲取右節點,以此來實現深度優先。 以下是程式碼

從零開始學習演算法Java實現~~~~之字串篇~~~判斷兩個字串是否是顛倒字母順序構成的

從今天開始記錄一下學習演算法的例程,貴在堅持! 寫出一個函式 anagram(s, t) 去判斷兩個字串是否是顛倒字母順序構成的 樣例    給出 s="abcd",t="dcab",返回 true 難都係數* 以下是java程式碼實現: public class So

機器學習與資料探勘-K最近鄰(KNN)演算法的實現javapython

KNN演算法基礎思想前面文章可以參考,這裡主要講解java和python的兩種簡單實現,也主要是理解簡單的思想。 python版本: 這裡實現一個手寫識別演算法,這裡只簡單識別0~9熟悉,在上篇文章中也展示了手寫識別的應用,可以參考:機器學習與資料探勘-logistic迴

Java學習筆記第一次課

stdio.h println 標準 ant 方法參數 ann 控制 大小寫 protect 1.簡單的Java語言模板 package inclass1_1; import java.io.*;//導入包(相當於c語言的#include<stdio.h>)

python3學習筆記0

utf-8 xxx 初識 login inux 接口 動態 phi python環境 一、編程語言主要從以下幾個角度分類:1、編譯型和解釋型2、靜態語言和動態語言3、強類型定義語言和弱類型定義語言編譯型:程序運行前先由負責翻譯的程序將代碼轉換成可執行代碼進行執行。例如C/C

Python學習筆記二十二文檔測試

log debug erro ems www 異常 直接 說明 error 摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143191702

Python學習筆記二十四StringIO和BytesIO

nbsp from 寫入 enc print == world! byte 初始化 StringIO 很多時候,數據讀寫不一定是文件,也可以在內存中讀寫。 StringIO顧名思義就是在內存中讀寫str。 要把str寫入StringIO,我們需要先創建一個String

Python學習筆記二十八多線程

oop 模擬 筆記 標準庫 函數 只需要 pre 開始 print 摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431928238187

Python學習筆記四十五網絡編程1TCP編程

包含 ipv sina spa 包括 現在 com 訪問 等等 摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432004374523e49