站在 Java 的肩膀上學 Python (一)

轉載請注明出處:http://www.lxweimin.com/p/cbca89aff23d

開始學習 Python 前,我是有一定的 Java 基礎的。寫這篇文章的目的一方面是作為學習 Python 的筆記,另一方面對 Java 和 Python 進行對比,便于記憶。
我是跟著廖雪峰的Python教程學習的,所以筆記中有的東西是直接復制過來的。

Python 的特點

龜叔給Python的定位是“優雅”、“明確”、“簡單”,總的來說,Python的哲學就是簡單優雅,盡量寫容易看明白的代碼,盡量寫少的代碼。

那Python適合開發哪些類型的應用呢?

首選是網絡應用,包括網站、后臺服務等等;

其次是許多日常需要的小工具,包括系統管理員需要的腳本任務等等;

另外就是把其他語言開發的程序再包裝起來,方便使用。

Python的缺點

  • 第一個缺點就是運行速度慢,和C程序相比非常慢,因為Python是解釋型語言,代碼在執行時會一行一行地翻譯成CPU能理解的機器碼,這個翻譯過程非常耗時,所以很慢。而C程序是運行前直接編譯成CPU能執行的機器碼,所以非常快。

  • 第二個缺點就是代碼不能加密。如果要發布你的Python程序,實際上就是發布源代碼,這一點跟C語言不同,C語言不用發布源代碼,只需要把編譯后的機器碼(也就是你在Windows上常見的xxx.exe文件)發布出去。要從機器碼反推出C代碼是不可能的,所以,凡是編譯型的語言,都沒有這個問題,而解釋型的語言,則必須把源碼發布出去。

運行Python

python

退出Python

>>> exit()

輸出函數

如果要讓Python打印出指定的文字,可以用print()函數,但與 Java 只能用雙引號不同的是, Python 可以把希望打印的文字用單引號或者雙引號括起來,但不能混用單引號和雙引號。

>>> print("hello, world")
hello, world
>>> print('hello, world')
hello, world

print()函數也可以接受多個字符串,用逗號“,”隔開,print()會依次打印每個字符串,遇到逗號“,”會輸出一個空格,就可以連成一串輸出:

>>> print("My", "name", "is", "XiaoMai")
My name is XiaoMai

其實上面的代碼是下面的略寫:

>>> print("My", "name", "is", "XiaoMai", sep = " ")

sep 的默認值為一個空格,可以給它賦值改變輸出結果:

>>> print("My", "name", "is", "XiaoMai", sep = "")
MynameisXiaoMai
>>> print("My", "name", "is", "XiaoMai", sep = "\n")
My
name
is
Xiao
Mai

輸入

Python提供了一個input()函數,可以讓用戶輸入字符串,并存放到一個變量里。比如輸入用戶的名字:

>>> name = input()
XiaoMai
>>> name
'XiaoMai'

input()函數還可以顯示一個字符串來提示用戶

>>> name = input("please enter your name: ")
please enter your name: Xiao Mai
>>> name
'Xiao Mai'

Python語法

  • 注釋:和 Java 不一樣,Python 是以 # 開頭

  • Python 語法中,每一行都是一個語句(和Java不同的是不用分號結尾)

  • 當語句以冒號 : 結尾時,縮進的語句視為代碼塊。(這里的 : 我理解的其實就是Java中的 {})

  • 按照約定俗成的管理,應該始終堅持使用 4個空格 的縮進。

  • Python程序是大小寫敏感的

      # 這是注釋
      a = 100
      if a >= 0:
          print(a)
      else:
          print(-1)
    

數據類型

在Python中,能夠直接處理的數據類型有以下幾種:

  • 整數(不是整型):Python可以處理任意大小的整數,當然包括負整數(跟Java不同的是沒有范圍限制)
  • 浮點數:也比Java要高級點,沒有大小限制,但是超出一定范圍就直接表示為inf(無限大)
  • 字符串:字符串是以單引號'或雙引號"括起來的任意文本(又比Java牛逼了點!)
  • 布爾值:和 Java 不同的是 Python 中的布爾值為首字母大寫的 TrueFlase
  • 空值:又和 Java 不同,Python中用 None 表示空值

Python 對字符串的特殊處理

Python允許用 r'' 表示 '' 內部的字符串默認不轉義

>>> print('\\\t\\')
\   \           
>>> print(r'\\\t\\')
\\\t\\

如果字符串內部有很多換行,用 \n 寫在一行里不好閱讀,為了簡化,Python允許用 '''...''' 的格式表示多行內容

>>> print ('''line1
... line2
... line3''')
line1
line2
line3

上面是在交互式命令行內輸入,注意在輸入多行內容時,提示符由 >>> 變為 ... ,提示你可以接著上一行輸入。如果寫成程序,就是:

print('''line1
line2
line3''')

Python中的運算符

Python中的運算符比Java要更形象

  • Java中的 && 在Python中用 and 表示
  • Java中的 || 在Python中用 or 表示
  • Java中的 在Python中用 not 表示

此外,和Java不同的是,在Python中,if 后面的條件語句也可以省略括號

if (age >= 18):

可以略寫為:

if age >= 18:

Python中的變量

和Java不同的是,Python中的變量不需要聲明數據類型,可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量。

a = 1 # 我是整數
print(a)
a = 'a' # 我又變成了字符串
print(a)
a = True # 我又變成了布爾值
print(a)

運行結果:

1
a
True

這種變量本身類型不固定的語言稱之為動態語言,與之對應的是靜態語言。靜態語言在定義變量時必須指定變量類型,如果賦值的時候類型不匹配,就會報錯,例如Java是靜態語言。

Python中的常量

Python中常量的命名規則和Java是一樣的,通常用全部大寫的變量名表示。
但是和Java不同的是,雖然稱它為常量,但Python中的常量其實仍然是一個變量,它的值是可以修改的,而Java就不可以修改了。

Python中的除法

在Python中有兩種除法:///

  • 第一種:/ 的計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數:

      >>> 10 / 3
      3.3333333333333335
      >>> 9 / 3
      3.0
    
  • 第二種://稱為地板除,兩個整數的除法仍然是整數:

      >>> 10 // 3
      3
      >>> 10.0 // 3 # 這個我也解釋不了
      3.0
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • http://python.jobbole.com/85231/ 關于專業技能寫完項目接著寫寫一名3年工作經驗的J...
    燕京博士閱讀 7,628評論 1 118
  • 又到年終,今年春節提前,工作時間被迫壓縮,但是項目比往月要多得多,元旦3天假,我加班2天。 加班這個話題在我家一直...
    mimi播報閱讀 294評論 6 6
  • 昨天(2017年3月21日),這位莫大姐,49歲左右,因為最近確診為肝血管瘤住院,3月20日,她訴自己有左側嚴重頸...
    ZHICHENGWUXI閱讀 759評論 0 1
  • 不,你不能停下來,你必須承受這些來的及來不及的情緒。 ——致生活 ...
    糖多米閱讀 369評論 0 2