pyhton (一)基础
我看的是廖雪峰寫的python2.7教程,我記錄的都是關鍵點,或者容易忘記的地方,還請看原版教程,
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000
?
dir(module)查看模塊有哪些方法.help(module)查看每個方法的使用方法及用途,我覺得學習每一門語言的時候都要先學這種方法,才學得更快一點.
人生苦短,我用Python。
這話可不是說說而已,在不涉及到性能要求或者平臺要求時,Python無疑是最好的編程語言,聽說PHP是世界上最好的語言,沒學過,不太清楚。機器學習在不在ARM架構上運行時,通常都是使用Python。
通常ubuntu都是自帶Python2.7的,就不介紹如何安裝了。
python hello.py
就可以執行了,如果有權限問題,直接sudo chmod a+x hello.py
name = raw_input('please enter your name: ') print 'hello,', nameprint 'The quick brown fox', 'jumps over', 'the lazy dog' 結果為 The quick brown fox jumps over the lazy dog 我的天哪,這個破博客的字體要把我給搞瘋了,誰特么設計的這個編輯界面,趕緊把這個產品開了吧,傻子一樣, name = raw_input() print 'hello,', name
這樣就可以在命令行進行輸入字符串了。
如果字符串內部有很多換行,用\n寫在一行里不好閱讀,為了簡化,Python允許用'''...'''的格式表示多行內容,可以自己試試: >>> print '''line1 ... line2 ... line3''' line1 line2 line3可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量,
python對于字符串的處理也和其他語言一樣是非常令人頭疼的,以前漢化游戲時,涉及到偏移量就更是頭大,
由于Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時,就需要務必指定保存為UTF-8編碼。當Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行:
#!/usr/bin/env python # -*- coding: utf-8 -*-第一行注釋是為了告訴Linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個注釋;
第二行注釋是為了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼。
>>> classmates.append('Adam') >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam'] >>> classmates.insert(1, 'Jack') >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']?要刪除list末尾的元素,用pop()方法:
>>> classmates.pop() 'Adam' >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy']要刪除指定位置的元素,用pop(i)方法,其中i是索引位置:
>>> classmates.pop(1) 'Jack' >>> classmates ['Michael', 'Bob', 'Tracy']?list里面的元素的數據類型也可以不同,比如:
>>> s = ['python', 'java', ['asp', 'php'], 'scheme'] >>> len(s) 4另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字。
elif是else if 的縮寫,注意縮進。
age = 3 if age >= 18:print 'adult' elif age >= 6:print 'teenager' else:print 'kid'?
?dict
names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85] >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d['Michael'] 95dict的查找速度更快,這個在自然語言處理中有應用,研究這方面的可以深入了解。
由于一個key只能對應一個value,所以,多次對一個key放入value,后面的值會把前面的值沖掉:
?判斷key是否存在
>>> 'Thomas' in d Falseset和dict類似,也是一組key的集合,但不存儲value。由于key不能重復,所以,在set中,沒有重復的key。
?set需要list作為輸入。
>>> s = set([1, 2, 3]) >>> s set([1, 2, 3])方法add 、 remove
set可以看成數學意義上的無序和無重復元素的集合,因此,兩個set可以做數學意義上的交集、并集等操作:
>>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 set([2, 3]) >>> s1 | s2 set([1, 2, 3, 4])abs取絕對值,cmp比較兩個數的大小
>>> int('123') 123 >>> int(12.34) 12 >>> float('12.34') 12.34 >>> str(1.23) '1.23' >>> unicode(100) u'100' >>> bool(1) True >>> bool('') False?使用while 循環判斷list內的數值為奇數還是偶數
#!usr/bin/python #coding:utf-8 numbers = [12,5,8,7,3,10] even = [] odd = []while len(numbers) > 0:number = numbers.pop()if(number%2 == 0):even.append(number)else:odd.append(number)print even print oddfor循環遍歷
#!/usr/bin/python # -*- coding: UTF-8 -*-for letter in 'Python': # 第一個實例print '當前字母 :', letterfruits = ['banana', 'apple', 'mango'] for fruit in fruits: # 第二個實例print '當前水果 :', fruitprint "Good bye!"索引遍歷
#!/usr/bin/python # -*- coding: UTF-8 -*- fruits = ['banana', 'apple', 'mango'] for index in range(len(fruits)):print '當前水果 :', fruits[index]print "Good bye!"?
?判斷是否為質數
#!usr/bin/python#coding:utf-8for num in range(10,20):for i in range(2,num):if num%i ==0:j = num/iprint '%d equal %d * %d' % (num,i,j)breakelse:print num,'is a prime number'?
?break跳出循環
#!usr/bin/python #coding:utf-8 for letter in 'python':if letter == 'h':breakprint 'char:',letter var = 10 while var > 0:print 'now:',varvar = var -1if var == 5:break print "Good bye"?
?
?
?
上幾天學機器學習的時候死活不明白矩陣轉換是怎么回事,看下面的講解才明白 。
?嵌套的列表推導式
列表推導式可以嵌套。
考慮以下的 3x4 矩陣,一個列表中包含三個長度為4的列表:
>>> matrix = [ ... [1, 2, 3, 4], ... [5, 6, 7, 8], ... [9, 10, 11, 12], ... ]現在,如果你想交換行和列,可以用嵌套的列表推導式:
>>> [[row[i] for row in matrix] for i in range(4)] [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]像前面看到的,嵌套的列表推導式是對?for?后面的內容進行求值,所以上例就等價于:
>>> transposed = [] >>> for i in range(4): ... transposed.append([row[i] for row in matrix]) ... >>> transposed [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]反過來說,如下也是一樣的:
>>> transposed = [] >>> for i in range(4): ... # the following 3 lines implement the nested listcomp ... transposed_row = [] ... for row in matrix: ... transposed_row.append(row[i]) ... transposed.append(transposed_row) ... >>> transposed [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]在實際中,你應該更喜歡使用內置函數組成復雜流程語句。對此種情況?zip()?函數將會做的更好:
>>> list(zip(*matrix)) [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]轉載于:https://www.cnblogs.com/HugoLester/p/7116408.html
總結
以上是生活随笔為你收集整理的pyhton (一)基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springmvc学习笔记(10)-sp
- 下一篇: python类库的查找