Python学习---Python安装与基础1205
1.0. 安裝
1.1.1. 下載
官網下載地址:https://www.python.org/downloads/release/python-352/
?
1.1.2. 配置環(huán)境變量
因為在安裝的時候我們選擇了添加python到環(huán)境變量,所以默認安裝好的,沒有的可以手動更改。
環(huán)境變量,添加路徑到path即可,注意封號
?
【更多參考】Python學習---Python環(huán)境變量安裝問題0907
1.1.3. python 2 vs 3
1. 默認支持中文
2. 不兼容2.x
3. 核心語法調整,更易學
4. 新特性默認只在3.x上有
2.x = 默認編碼 =ASSIC =不支持
3.x = 默認編碼 =UNICODE =默認支持中文
Py2中只有2種數(shù)據(jù)類型:str? unicode [其中str中保存的是bytes, unicode里面保存的是unicode]
Py3中只有2種數(shù)據(jù)類型:str? bytes
Py3中合并Py2中的int和long int類型為int類型
1.1.4. 系統(tǒng)位數(shù)
32bit =內存的最大尋址空間是2**32, 4GB
64bit, =2**64 但實際上支持不到這莫大的內存,2**4x, 目前主板支持的最大的內存是100多GB
4gb ==64位系統(tǒng) 會不會比32位系統(tǒng)快? = 一樣的
1.1.5. 硬盤:
5400轉 = 每分鐘 =騎自行車
7200轉 = 每分鐘 =騎電動車
10000轉 = 每分鐘 =騎快速電動車
15000轉 = 每分鐘 =騎摩托車? 機械硬盤最快的
SSD = Tesla
1.1. 執(zhí)行py程序方式為:
1. 交互器,缺點程序不能永久保存,主要用與簡單的語法測試相關
2. 文件執(zhí)行
1.2. Python特征
1.簡單主義思想的語言,偽代碼是最大的優(yōu)點,讓你專注于解決問題,而不是代碼本身
2.直接源代碼運行,不需要解釋器,類似Java
3.即支持面向過程也支持面向對象編程
4.使用Python編程,不需要考慮底層的,因為底層有自動化的內存管理
5.可擴展性以及可嵌入性,可以把部分程序用C或者C++寫,在Python中使用,同理也可以在C中調用Python
6.開源,免費,可移植性,豐富的庫
1.3. python變量
跟JAVA一樣,更改的是地址的指引
1.4. 變量/常量的命名規(guī)則
變量:是為了存儲 程序運算過程中的一些中間 結果,為了方便日后調用
1. 要具有描述性
2. 變量名只能_,數(shù)字,字母組成,不可以是空格或特殊字符(#?<.,¥$*!~)
3. 不能以中文為變量名
4. 不能以數(shù)字開頭
5. 保留字符是不能被使用
6. 變量的命名應該有意義
常量 :不變的量 pie = 3.141592653....
在py里面所有的變量都是可變的 ,所以用全部大寫的變量名來代表次變量為常量
1.5. 內存何時釋放
1.自動釋放:Python有自己的PVM機制,會定期清理內存
2.手動釋放:del name? (清空了堆棧直接的指引,變量找不到索引),PVM會自動回收內存
1.6. 字符編碼
ASCII: 將二進制翻譯成我們能看懂的字符,共計255個符號,所有字符占用8個比特1個字節(jié)
支持中文的第一張表就叫 GB2312
unicode 萬國碼? 支持所有國家和地區(qū)的編碼且向下兼容gb2312 , gbk
2**16 = 65535 = 存一個字符 統(tǒng)一占用2個字節(jié)
???? UTF-8 = unicode 的擴展集,可變長的字符編碼集
Assic -->Gb2312 ->gbk1.0-->gb18030
Assic -->unicode -->utf-8(支持所有國家語言,支持中文)?? /utf-16
Py3中只有2種數(shù)據(jù)類型:str[unicode編碼]? bytes[十六進制編碼], 2者可以相互轉換,其他的轉換需要中間轉
bytes-->int: int(str(bytes('123', 'utf-8'),'utf-8')) # 編碼Py3中合并Py2中的int和long int類型為int類型
?【更多參考】Python學習---深入編碼學習1225
1.7. 注釋及簡單的用戶輸入輸出
中文編碼:#coding:utf-8
單行注釋: 用#
??????????????? # print ("hello world")
多行注釋:三個單引號或者雙引號(單雙引號效果相同),有變量的時候,可以用作多行的輸入
??????????????? ''' print ("hello world") '''
注意:單雙引號效果同,但是為了有時候英文的需要,例如my='it's me'里面的縮寫,程序會認為是變量而終止,所以最好用雙引號my="it's me"
用戶輸入:
input/raw_input 接受的所有數(shù)據(jù)都是字符串,即便你輸入的是數(shù)字,但依然會被當成字符串來處理
int(age):將字符串轉化為整數(shù)類型
str(age):將整數(shù)轉化為字符串類型
death_age = 80 max_age=90 name = raw_input("your name:") age = raw_input("your age:") #print( type(age) ) print ("your name is :",name) print ("your age is :",age) print ("your grandpa is older than you :",max_age-int(age))?print的使用:
??????????????????? 有逗號(","),會按照2個單獨的字符集處理
? ? ? ? ? ? ? ? ? ? 需要一起處理,則需要"+"做字符串的拼接,不同類型之間需要轉型??
??????????????????? 3個單/雙引號也可以用于多行的輸入???????
???????????????????? print是一個函數(shù),所以print和括號直接不需要空格??????
print("Sorry, ~_~") print "Hello"+"World" print "Hello"+"World"+str(12) print ("hello",end="___") #end 默認是換行的 print () #等價于換行,end 默認是換行的 msg="""hello world 2017""" print (msg)1.8. if語句實現(xiàn)猜年齡
python通過縮進來是實現(xiàn)的語法判斷,而且縮進級別必須相同,否則會報錯
if...else是一個整體,不一定需要同時出現(xiàn),但是有else必須有if
# if int(guess_age) == max_age: 注意等號2邊的空格
while面的True必須大寫
break可以退出循環(huán),exit(0)也可以退出循環(huán),也可以設置標志位來結束循環(huán)
max_age = 90 #flag=True #True必須是大寫的哈 #while flag while True:guess_age = raw_input("input the age of you guess>>:")if int(guess_age) == max_age:print ("Congratulation^_^")break; # 終止循環(huán)#exit(0)#flag=falseelif int(guess_age) > max_age:print ("please try small")elif int(guess_age) < max_age:print ("please try bigger")else:print("Sorry,~_~") print "END"1.9. 算術運算符
除法計算
print (5/2) # 2.5 print (5//2) # 2Python特殊的判斷:連續(xù)的大小判斷
a=100 b=90 c=200 if b<a<c:print "OK" # OK?
判斷三個數(shù)字中的最大值
a=int (raw_input("input the first num:")) b=int (raw_input("input the first num:")) c=int (raw_input("input the first num:")) max =a if max < b:max = b;if max < c:max = c;print maxelse:print maxpy內置數(shù)學函數(shù)
# abs(x) 返回數(shù)字的絕對值,如abs(-10) 返回 10 # ceil(x) 返回數(shù)字的上入整數(shù),如math.ceil(4.1) 返回 5 # cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1 # exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045 # fabs(x) 返回數(shù)字的絕對值,如math.fabs(-10) 返回10.0 # floor(x) 返回數(shù)字的下舍整數(shù),如math.floor(4.9)返回 4 # log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 # log10(x) 返回以10為基數(shù)的x的對數(shù),如math.log10(100)返回 2.0 # max(x1, x2,...) 返回給定參數(shù)的最大值,參數(shù)可以為序列。 # min(x1, x2,...) 返回給定參數(shù)的最小值,參數(shù)可以為序列。 # modf(x) 返回x的整數(shù)部分與小數(shù)部分,兩部分的數(shù)值符號與x相同,整數(shù)部分以浮點型表示。 # pow(x, y) x**y 運算后的值。 # round(x [,n]) 返回浮點數(shù)x的四舍五入值,如給出n值,則代表舍入到小數(shù)點后的位數(shù)。 # sqrt(x) 返回數(shù)字x的平方根,數(shù)字可以為負數(shù),返回類型為實數(shù),如math.sqrt(4)返回 2+0j特殊的賦值運算符:
num += 1 等價于 num = num + 1 num -= 1 等價于 num = num - 1 num *= 2 等價于 num = num * 2 num /= 2 等價于 num = num / 2 num //= 2 等價于 num = num // 2 num %= 2 等價于 num = num % 2 num **= 2 等價于 num = num ** 2?
短路原則:類似Java中的 &&,||
對于and 如果前面的第一個條件為假,那么這個and前后兩個條件組成的表達式 的計算結果就一定為假,第二個條件就不會被計算
對于or? 如果前面的第一個條件為真,那么這個or前后兩個條件組成的表達式 的計算結果就一定為真,第二個條件就不會被計算
not not True or False and not True ==> (not (not True) )or( False and (not True )) --》True1.10. break/continue
break: 退出本次循環(huán)
continue: 退出當前的循環(huán)
注意:Python的while語句中也可以由else的語法
num=1 while num<=9:num += 1if num == 3:continueprint (num) else:print "while also has else syndex"1.11. 編碼規(guī)范
【更多參考】http://blog.csdn.net/robinzhou/article/details/6991078
| 常量 : 大寫加下劃線 ?USER_CONSTANT 對于不會發(fā)生改變的全局變量,使用大寫加下劃線。 ?_private_value Python 中不存在私有變量一說,若是遇到需要保護的變量,使用小寫和一個前導下劃線。但這只是程序員之間的一個約定,用于警告說明這是一個私有變量,外部類不要去訪問它。但實際上,外部類還是可以訪問到這個變量。 ?__class__ 兩個前導下劃線會導致變量在解釋期間被更名。這是為了避免內置變量和其他變量產生沖突。用戶定義的變量要嚴格避免這種風格。以免導致混亂。 ? def _secrete(self): 這里和私有變量一樣,并不是真正的私有訪問權限。同時也應該注意一般函數(shù)不要使用兩個前導下劃線(當遇到兩個前導下劃線時,Python 的名稱改編特性將發(fā)揮作用)。特殊函數(shù)后面會提及。 ?def __add__(self, other): 這種風格只應用于特殊函數(shù),比如操作符重載等。 ?def connect(self, user=None): 3 類 類總是使用駝峰格式命名,即所有單詞首字母大寫其余字母小寫。類名應該簡明,精確,并足以從中理解類所完成的工作。常見的一個方法是使用表示其類型或者特性的后綴,例如: ?class UserProfile(object): 除特殊模塊 __init__ 之外,模塊名稱都使用不帶下劃線的小寫字母。 ?import os 5 關于參數(shù) ?is_connect = True? 6.2 用復數(shù)形式命名序列 ?members = ['user_1', 'user_2'] 6.3 用顯式名稱命名字典 ?person_address = {'user_1':'10 road WD', 'user_2' : '20 street huafu'} 6.4 避免通用名稱 一個函數(shù) : 不要超過 30 行代碼, 即可顯示在一個屏幕類,可以不使用垂直游標即可看到整個函數(shù)。 |
?1.12. 打印直角三角形
#coding:utf-8 #Python 3.5.2 lines = int(input("please input the lines:")) while lines > 0:tmp = lineswhile tmp > 0:print ("*",end="")#不換行tmp -= 1print ()lines -= 11.13 打印9*9
#Python 3.5.2 first = 9 while first > 0:sec = 1while sec <= first:print (str(sec)+"*"+str(first)+"="+str(first * sec),end="\t")#不換行sec += 1print ()first -= 1轉載于:https://www.cnblogs.com/ftl1012/p/9381696.html
總結
以上是生活随笔為你收集整理的Python学习---Python安装与基础1205的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AE教程:学会这个,你做的Logo就可以
- 下一篇: 【Leetcode】14、Longest