寫在前面的話python
任何編程語言一開始都是從概念出發的,但各類編程語言之間的概念可能又會有差別,因此,老生常談,咱們仍是須要重新過一遍 Python 的概念,固然,若是你已是老司機了,徹底能夠一晃而過,不過老司機應該也不會再看這些基礎。編程
另外,編程一開始都是枯燥的,緣由有兩,一是沒有成就感,二是茫然本身怎麼把這些知識串聯起來。因此,但願有幸看到這裏的都可以靜下心好好看下去,柳暗花明,須要的是時間。你也能夠一蹴而就去看框架。可能比較聰明就能跟着作出一些東西出來。框架
可是,那樣的人終究是一隻紙老虎,一開始很嚇人,但慢慢的愈來愈笨批,由於自己基礎沒打好,如何建出高樓大廈,最多也就是海市蜃樓。編程語言
這裏順便介紹一下計算機的程序和指令:工具
計算機由運算器,控制器,存儲器,輸入設備,輸出設備組成,運算器和控制器組成中央處理器,主要執行運算和控制指令處理數據。編碼
代碼註釋spa
說明:所謂的註釋,就是這一段內容在程序運行的時候不起做用,可是在咱們查看代碼的時候能給我清清楚楚說明這段代碼的做用。3d
注意:註釋是代碼之本,對你也好,對別人也好,沒註釋的代碼就是垃圾,無論你寫的多漂亮。調試
在 Python 中,注意通常兩種,單行註釋和多行註釋。code
單行註釋:# 註釋內容,井號
多行註釋:""" 註釋內容 """,三個雙引號
咱們通常在註釋符號後面加個空格,這是 PEP8 的規範,也便於閱讀。例如:
# 這是一個單行註釋 """ 這是多行註釋 這是多行註釋 這是多行註釋 這是多行註釋 """
在 Python 中有個特別的註釋:
# -*- coding: utf-8 -*-
指定編碼類型,寫在 py 文件開始,推薦這句話成爲你們之後寫代碼的規範。
輸出輸入
輸出:以前咱們使用了 hello world demo,而後打印輸出了內容,這裏經過實例詳細講講 print 的用法:
print('打印字符串:') print('hello world') print('打印逗號做爲分隔符的多個內容:') print('My', 'name', 'is', 'Dylan', '!') print('打印數字:') print(100) print('打印算術:') print(100 + 100) print('打印字符串拼接:') print('100' + '100') print('打印屢次:') print('A' * 10)
打印結果如圖:
注意:若是兩種不一樣類型的數據相 + 拼接,如 100 + '100',會報錯:TypeError: can only concatenate str (not "int") to str
輸入:用戶本身輸入內容賦值給變量,而且可以被程序後面使用。
my_name = input("Plz input your name:")
print('My name is', my_name)
結果:
注意:input 輸入的值都是字符串,若是你須要的並非字符串,記得對值得類型就行轉換
變量常量
變量:存儲數據的載體,計算機中變量實際是一塊內存空間,可以被讀取和修改。
在 python 中,變量命名有以下規則:
1. 數字,字母,下劃線組成,不能字母開頭。
2. 區分大小寫。
3. 不用跟系統關鍵字同名,如:print
這裏順便提一提 PEP8 規範,這是一個很是嚴格的規範,可是但願你們都能遵照:
1. 小寫字母組成,單詞之間下劃線鏈接。
2. 受保護的實例屬性單下劃線開頭,後面會說。
3. 私有的實例屬性使用雙下劃線開頭,後面會說。
4. 見名知義。
例如:
# 變量定義 my_name = "Dylan" my_age = 25 is_boy = True user_info = None # 變量引用 print('My name is', my_name) print('My age is', my_age) print('You are boy:', is_boy) print('Desc:', user_info)
結果:
常量:這裏就一個特殊的,π,3.1415926
數據類型
咱們這裏只是簡單的介紹一下數據類型:
1. 整數:
包括正整數,負整數,0。python 是能夠處理任意大小的整數。
2. 浮點數:
也就是小數,可是包含科學計數法部分,如:1.2x10^10,有些地方也把 10 寫成 e,如:1.2e10,0.0012 寫成 1.2e-3。
值得注意的是,在 Python 中,整數永遠是精確的,可是小數多是結果四捨五入而來。
3. 字符串:
單引號或者雙引號括起來的任意文本 ,如:"abc"。
固然,在字符串中有些特殊的,好比 \(轉義符),幾種常見的轉義符:\n 換行,\t 製表符,\\ 符號自己
不轉義可使用 r。以下實例:
print('hello\nworld') print('hello\tworld') print('\\n\\') print(r'hello\nworld')
結果:
4. 布爾類型:
至於兩個 True 和 False。能夠用於判斷,後面會用到。
5. 空值:
只有一個,None,注意 Node 不是 0。
查看數據類型:type(變量)
a = 'hello' print(type(a))
結果:
數據類型轉換方法:
方法 | 做用 |
---|---|
int() | 將一個數字或者自己是數字的字符串轉換成整型 |
float() | 將字符串轉換成小數 |
str() | 將指定對象轉換成字符串 |
chr() | 將整數編碼成對應的字符串,也就是返回在數字對應ASCII 表中的值 |
ord() | 將字符串(一個字符)轉換成對應編碼(整數),也就是返回字母返回在 ASCII 表中的數字 |
示例:
a = 3.1415926 print(int(a)) b = 3 print(float(b)) c = 123 print(type(str(c))) d = 65 print(chr(d)) f = 'A' print(ord(f))
結果:
格式化輸出
咱們只須要記住幾個經常使用就是了:%d 整數佔位符,%f 浮點數佔位符,%s 字符串佔位符,%x 十六進制整數
和轉義符 \ 同樣,% 的轉義符就是 %,因此輸出 % 就是 %%。
示例以下:
# 單個佔位符 print('My name is %s' % 'Dylan') # 多個佔位符 print('My name is %s,age is %d!' % ('Dylan', 25)) # 小數保留位數 print('%.2f' % 3.1415926) # 右對齊指定位數,不夠前面補充字符: print('%3d' % 2) print('%03d' % 2) # 左對齊 print('%-5d#hello' % 2) # 百分比 print('%d%%' % 10)
結果:
固然還有另一種格式化方式,只是用的比較少:
print('My name is {}, age is {}'.format('Dylan', 25)) print('My name is {0}, age is {1}'.format('Dylan', 25)) print('My name is {}, age is {age}'.format('Dylan', age=25))
運算符
參考以下表:
運算符 | 描述 |
---|---|
[數字] [:] | 下標/切片 |
~ + - | 按位與/正/負 |
** + - * / % // | 冪/加/減/乘/除/取模/取整(算數運算符) |
>> << | 右移/左移 |
& | 按位與 |
> < >= <= == != | 大於/小於/大於等於/小於等於/等於/不等於 |
is/is not | 身份運算符 |
in/not in | 成員運算符 |
not/or/and | 非/或/和(邏輯運算符) |
至於優先級,感興趣的能夠本身下去研究:( ) > not > and > or
1. 算術運算符示例:
# 算術運算符 a = 3 b = 5 print(a + b) print(a - b) print(a * b) print(a / b) print(a % b) print(a // b) print(a ** b)
結果:
2. 比較運算符:
# 比較運算符 a = 3 b = 5 print(a > b) print(a < b) print(a >= b) print(a <= b) print(a == b) print(a != b)
結果:
3. 邏輯運算符:
and:同真爲真
or:一真爲真
not:取反
print(3 > 4 or 4 < 3 and 1 == 1) print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)
結果:
數值在邏輯比較時候:
x or y,x 真,值 x,x 假,值 y
x and y,x 真,值 y,x 假,值 x
例如:
print(0 or 4 and 3 or 7 or 9 and 6)
結果爲:3
4. 成員關係運算符後面咱們會單獨在提!
練習示例
【1】輸入圓半徑計算周長和麪積:
# 導入 pi from math import pi # 用戶輸入半徑 radius = float(input("請輸入圓的半徑:")) # 計算周長和麪積 cycle = 2 * pi * radius area = pi * radius * radius # 輸出結果 print("半徑爲 %.2f 的圓的周長爲 %.2f,面積爲 %.2f" % (radius, cycle, area))
結果:
【2】判斷閏年和平年:
# 用戶輸入年份 year = int(input("請輸入年份:")) # 判斷閏年(如今沒學 if,用上面的方法) is_leap = ((year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0)) print("年份 %s 是不是閏年:%s" % (year, is_leap))
結果:
小結
這一節主要是 Python 基礎中得基礎,其中數據類型,運算符算是重中之重。輸入可能在之後寫代碼得時候用得比較少,可是輸出絕對很多。
在羣裏以前老是有人在問代碼除了問題,不知道怎麼解決,工具就給他報個錯,而後人就傻了。其實對於初學者最爲直觀的調試方法就是將有些步驟的結果經過 print 打印出來,看結果是否符合咱們的預期。
天然問題不少就得以解決。還有部分不能解決的,就能夠結合 type 來檢查,看類型是否正確。若是最後還不能解決,那問題可能就是你自己就寫錯了。