最近空了些,學習一些有意思的東東。主要是看網上的教材,這篇也是邊看編寫的。python
Python教程objective-c
輸入:raw_input()
,輸入形式爲字符串格式瀏覽器
>>> name = raw_input('input sth:') input sth:Michael >>>name 'Michael'
>>>birth = int(raw_input('birth: ')) birth: 1485 >>> birth 1485
這樣就把輸入的字符串轉換爲整型了。服務器
輸出:print
app
print 'The quick brown fox', 'jumps over', 'the lazy dog' >>> The quick brown fox jumps over the lazy dog
Python能夠沒有大括號{}和分號,用縮進替代{},程序區分大小寫。學習
好比:ui
name = raw_input('enter a number:') if name >= 0: print name elif name < 0: print -name else: print 'not a number'
包括了整數(ox表示十六進制),浮點數(1.23e9=1.23 x 10的9次方),字符串(\爲轉義字符),布爾值(True,False,能夠用and,or,not運算),空值(None)編碼
數據類型包括變量和常量。常量一般用大寫字母表示(相似C++的define)。spa
Python的變量賦值相似指針指針
a = 'ABC' b = a a = 'XYZ' print b
最後結果是XYZ
計算機能處理的是二進制文件,就須要把字符串轉化爲二進制數字進行保存。最先時採用的是ASCII
編碼方式,用一個字節(8位)把字母編碼到計算機裏,好比A
對應數字65
,z
對應122
。其餘語言也須要進行相應的編碼,好比GB2312
編碼中文(兩個字節)。在不一樣語言採用不一樣編碼保存時,讀取字符串就成了問題。
所以有了Unicode
,把全部語言用一種方式編碼。但有時Unicode
佔用內存較浪費,好比A
只須要一個字節的內存,事實上多過一個字節,就又有了UTF-8
編碼,智能化字符串的編碼方式,節省內存。
Unicode轉換爲UTF-8保存到文件::
瀏覽網頁的時候,服務器會把動態生成的Unicode內容轉換爲UTF-8再傳輸到瀏覽器::
文件保存的是UTF-8的編碼方式,打開時變爲Unicode編碼方式。
Python的出現比Unicode早,普通的字符串用ASCII
編碼
>>> ord('A') 65 >>> chr(65) 'A'
後來增長了對Unicode的支持
>>> print u'中文' 中文 >>> u'中' u'\u4e2d'
Unicode
編碼轉換未utf-8
編碼
>>> u'ABC'.encode('utf-8') 'ABC' >>> u'中文'.encode('utf-8') '\xe4\xb8\xad\xe6\x96\x87'
utf-8
轉換爲unicode
>>> 'abc'.decode('utf-8') u'abc' >>> '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') u'\u4e2d\u6587' >>> print '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') 中文
在代碼中包含中文時,就須要用UTF-8編碼讀取,在文件頭加一行
# -*- coding: utf-8 -*-
Python也可使用格式化輸出。
>>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.'
list
相似objective-c下的NSMutableArray,
>>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy']
可使用len(classmates)
計算list元素個數,classmates[-1]
獲取list最後一個
元素。
在list最後增長一個元素
>>> classmates.append('Adam') >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam']
在某個index插入一個元素
>>> classmates.insert(1, 'Jack') >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
刪除list的最後一個元素classmates.pop()
,刪除某個index的元素classmates.pop(i)
。
tuple
是另外一種有序元祖,與list相似,可是tuple一旦初始化後就不能修改了。
>>> t = (1, 2) >>> t (1, 2)
若是隻定義一個元素,採用t = (1)
,則t不是一個tuple,而是一個整形數字,由於()
也能夠認爲是數學公式中的小括號。能夠經過加上,
來區分tuple和單個數字t = (1, )
,python在顯示只有一個元組的tuple時,也會加上,
。
tuple
也能夠是可變的,好比:
>>> t = ('a', 'b', ['A', 'B']) >>> t[2][0] = 'X' >>> t[2][1] = 'Y' >>> t ('a', 'b', ['X', 'Y'])
tuple
有一個元素是list,而list是可變的。這段代碼的兩幅圖:
兩段代碼就能夠大概知道Python下的if else
了。
Python省去了{}
,使用縮進代替。
age = 3 if age >= 18: print 'your age is', age print 'adult' else: print 'your age is', age print 'teenager'
age = 20 if age >= 6: print 'teenager' elif age >= 18: print 'adult' else: print 'kid'
#若是隻要x是非零數值、非空字符串、非空list等,就判斷爲True,不然爲False if x: print 'True';
Python下的for
循環
names = ['Michael', 'Bob', 'Tracy'] for name in names: print name
sum = 0 for x in range(101): sum = sum + x print sum
range(101)
= [0,1,2,3....100]
還有一種是while循環
sum = 0 n = 99 while n > 0: sum = sum + n n = n - 1 print sum
dict
是一種key-value
數據存儲格式。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d['Michael'] 95
判斷某dict
中是否存在某個鍵值。
>>> d.get('Thomas') >>> d.get('Thomas', -1)//-1爲自定義返回值 -1
>>> 'Thomas' in d False
用pop(key)
刪除dic中的某個特定鍵值對,好比d.pop('Bob')
string
對象在Python中是不可變的。
>>> a = 'abc' >>> b = a.replace('a', 'A') >>> b 'Abc' >>> a 'abc'
a.replace('a','A')
,返回一個新的字符串Abc
,原來的a
並無改變。