最近空了些,学习一些有意思的东东。主要是看网上的教材,这篇也是边看编写的。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
并无改变。