切片

比如一个list去前3个元素,取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

1
2
3
>>> r = ['a','b','c','d','e','f','g']
>>> r[0:3]
['a', 'b', 'c']

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。
记住倒数最后一个元素的索引是-1。

切片操作十分有用。我们先创建一个0-99的数列:

1
2
3
>>> L = range(100)
>>> L
[0, 1, 2, 3, ..., 99]

可以通过切片轻松取出某一段数列。比如前10个数:

1
2
>>> L[:10]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

后10个数:

1
2
>>> L[-10:]
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

前11-20个数:

1
2
>>> L[10:20]
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

前10个数,每两个取一个:

1
2
>>> L[:10:2]
[0, 2, 4, 6, 8]

所有数,每5个取一个:

1
2
>>> L[::5]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

甚至什么都不写,只写[:]就可以原样复制一个list:

1
2
>>> L[:]
[0, 1, 2, 3, ..., 99]

tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple:

1
2
>>> (0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)

字符串’xxx’或Unicode字符串u’xxx’也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

1
2
3
4
>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[::2]
'ACEG'

迭代

因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。

list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代:

1
2
3
4
5
6
7
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
... print key
...
a
c
b

默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.itervalues(),如果要同时迭代key和value,可以用for k, v in d.iteritems()。

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> for value in d.itervalues():
... print value
...
1
3
2
>>> for k,v in d.iteritems():
... print k,v
...
a 1
c 3
b 2

如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:

1
2
3
4
5
6
7
>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

1
2
3
4
5
6
>>> for i, value in enumerate(['A', 'B', 'C']):
... print i, value
...
0 A
1 B
2 C

for循环里,同时引用了两个变量,在Python里是很常见的,比如下面的代码:

1
2
3
4
5
6
>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
... print x, y
...
1 1
2 4
3 9

列表生成式

列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用range(1, 11):

1
2
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

如果要生成[1x1, 2x2, 3x3, …, 10x10]怎么做?

1
2
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:

1
2
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

还可以使用两层循环,可以生成全排列:

1
2
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

运用列表生成式,可以写出非常简洁的代码。例如,列出当前目录下的所有文件和目录名,可以通过一行代码实现:

1
2
3
>>> import os #  导入os模块
>>> [d for d in os.listdir('.')] # os.listdir可以列出文件和目录
['.emacs.d', '.ssh', '.Trash', 'Adlm', 'Applications', 'Desktop', 'Documents', 'Downloads', 'Library', 'Movies', 'Music', 'Pictures', 'Public', 'VirtualBox VMs', 'Workspace', 'XCode']

内建的isinstance函数可以判断一个变量是不是字符串:

1
2
3
4
5
6
>>> x = 'abc'
>>> y = 123
>>> isinstance(x, str)
True
>>> isinstance(y, str)
False

生成器

列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。

1
2
3
>>> g = (x * x for x in range(10))
>>> g
<generator object <genexpr> at 0x104feab40>

如果要一个一个打印出来,可以通过generator的next()方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
>>> g.next()
0
>>> g.next()
1
>>> g.next()
4
>>> g.next()
9
>>> g.next()
16
>>> g.next()
25
>>> g.next()
36
>>> g.next()
49
>>> g.next()
64
>>> g.next()
81
>>> g.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration

generator保存的是算法,每次调用next(),就计算出下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出StopIteration的错误。

generator非常强大。如果推算的算法比较复杂,用类似列表生成式的for循环无法实现的时候,还可以用函数来实现。

比如,著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:

1, 1, 2, 3, 5, 8, 13, 21, 34, …

斐波拉契数列用列表生成式写不出来,但是,用函数把它打印出来却很容易:

1
2
3
4
5
6
def fab(max):
n, a, b = 0, 0, 1
while n < max:
print b
a, b = b, a + b
n = n + 1

上面的函数可以输出斐波那契数列的前N个数:

1
2
3
4
5
6
7
>>> fab(6)
1
1
2
3
5
8

仔细观察,可以看出,fab函数实际上是定义了斐波拉契数列的推算规则,可以从第一个元素开始,推算出后续任意的元素,这种逻辑其实非常类似generator。

也就是说,上面的函数和generator仅一步之遥。要把fab函数变成generator,只需要把print b改为yield b就可以了:

1
2
3
4
5
6
def fab(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1

这就是定义generator的另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator:

1
2
>>> fab(6)
<generator object fab at 0x104feaaa0>

这里,最难理解的就是generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> def fun():
... print 'step1'
... yield
... print 'step2'
... yield
... print 'step3'
... yield
...
>>> o = fun()
>>> o.next()
step1
>>> o.next()
step2
>>> o.next()
step3
>>> o.next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration

  • padding 控件的内容相对控件边缘的边距

  • margin 控件边缘相对父控件的边距

  • android:gravity 该view内容的限定限定位置

  • android:layout_gravity 设置该view中的子view相对于父view的限定位置

list 和 tuple

list

list是Python内置的一种数据类型是列表,为一种有序的集合,可以随时添加和删除其中的元素。
例如,列出班级中所有同学的名字:

1
2
classmates = ['Michael','Bob','Tracy']
print classmates

可以用len()函数获取list元素的个数

1
2
>>> len(classmates)
3

用索引来访问list中每一个位置的元素,记得索引是从0开始的:

1
2
3
4
5
6
7
8
9
10
>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range

当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:

1
2
>>> classmates[-1]
'Tracy'

以此类推,可以获取倒数第2个、倒数第3个:

1
2
3
4
5
6
7
8
>>> classmates[-2]
'Bob'
>>> classmates[-3]
'Michael'
>>> classmates[-4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range

当然,倒数第4个就越界了。

list是一个可变的有序表,所以,可以往list中追加元素到末尾:

1
2
3
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

也可以把元素插入到指定的位置,比如索引号为1的位置:

1
2
3
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

要删除list末尾的元素,用pop()方法:

1
2
3
4
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']

要删除指定位置的元素,用pop(i)方法,其中i是索引位置:

1
2
3
4
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']

要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:

1
2
3
>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']

list里面的元素的数据类型也可以不同,比如:

1
>>> L = ['Apple', 123, True]

list元素也可以是另一个list,比如:

1
2
3
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4

要注意s只有4个元素,其中s[2]又是一个list,如果拆开写就更容易理解了:

1
2
>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']

要拿到’php’可以写p[1]或者s[2][1],因此s可以看成是一个二维数组,类似的还有三维、四维……数组,不过很少用到。

如果一个list中一个元素也没有,就是一个空的list,它的长度为0:

1
2
3
>>> L = []
>>> len(L)
0

tuple

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:

1
>>> classmates = ('Michael', 'Bob', 'Tracy')

现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:

1
2
3
>>> t = (1, 2)
>>> t
(1, 2)

如果要定义一个空的tuple,可以写成():

1
2
3
>>> t = ()
>>> t
()

但是,要定义一个只有1个元素的tuple,如果你这么定义:

1
2
3
>>> t = (1)
>>> t
1

定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

1
2
3
>>> t = (1,)
>>> t
(1,)

Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

最后来看一个“可变的”tuple:

1
2
3
4
5
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

这个tuple定义的时候有3个元素,分别是’a’,’b’和一个list。不是说tuple一旦定义后就不可变了吗?怎么后来又变了?

别急,我们先看看定义的时候tuple包含的3个元素:

当我们把list的元素’A’和’B’修改为’X’和’Y’后,tuple变为:

表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

小结

list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。

条件判断和循环

条件判断

根据Python的缩进规则,如果if语句判断是True,就把缩进的语句执行,否则不执行。
也可以给if添加一个else语句,如果if判断是False,就不执行if的内容,而执行else的内容

1
2
3
4
if(3>2):
print '执行这里'
else:
print '没执行这里'

注意不要少写冒号":"

1
2
3
4
5
6
7
8
9
elifelse if的缩写,完全可以有多个elif,所以if语句的完整形式就是:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>

循环

Python的循环有两种,一种是for…in循环,用于遍历list或者tuple

1
2
3
colors = ['red','blue','green']
for color in colors:
print color

执行这段代码会依次打印colors的每一个元素

1
2
3
red
blue
green

Python提供了一个range()函数,可以生成一个整数序列,我们可以计算一个1-100的整数之和

1
2
3
4
sum = 0
for x in range(101):
sum = sum + x
print sum

第二种循环是while循环,和C语言一样,只要条件为True,就会执行循环体

1
2
3
4
5
6
sum = 0
n = 1
while n <= 100:
sum = sum + n
n = n + 1
print sum

如果死循环了,记得用Ctrl + C退出循环

dict和set

dict

dict就是dictionary,在Java里也成为map,使用键值对(key-value)存储,具有极快的查找速度
例如记录同学们的成绩

1
2
d = {'Michael':95,'Bob':75,'Tracy':85}
print d['Micheal']

除了初始化时指定外,存储value时,通过key放入(相同的key赋值的话,会覆盖掉之前的value):

1
>>> d['Adam'] = 76

如果key不存在dict会报错,为了避免这种错误,可以通过in判断key是否存在,或者使用dict的get方法,获取value,不存在的话会返回None

1
2
3
dic = {"a":67,"c":12,"b":1}
print 'd' in dic
print dic.get("d")

要删除一个key,使用pop(key)方法
与list相比,dict有以下几个特点

  1. 查找和插入的速度极快,不会随着key的增加而增加
  2. 需要占用大量内存,内存浪费多
    而list相反
  3. 查找和插入的时间随着元素的增加而增加
  4. 占用空间小,浪费内存很小

Set

Set和dict类似,但是不存在value,只存一组key,而且key不能重复,所以Set中没有重复的key

1
2
3
>>> s = set([1,2,3,4,5,1,2,3,4,5])
>>> s
set([1, 2, 3, 4, 5])

重复的元素会被自动过滤掉
添加元素可以使用set的add(key)方法,可以重复添加,但不会有效果,删除元素使用remove(key)方法

1
2
3
4
5
6
7
8
>>> s = set([])
>>> s.add(1)
>>> s.add(2)
>>> s.add(3)
>>> s.add(4)
>>> s.remove(3)
>>> s
set([1, 2, 4])

注意删除的元素必须存在,否则报错
set可以看成数学上的无序和无重复元素的集合,所以也可以做交集和并集的运算操作

1
2
3
4
5
6
>>> s1 = set([1,2,3,4])
>>> s2 = set([2,4,6,8])
>>> s1 & s2
set([2, 4])
>>> s1 | s2
set([1, 2, 3, 4, 6, 8])

函数

Python内置了很多很有用的函数,我们可以直接调用。可以在Python的官网上查看文档
可以在命令行通过help()查看某个函数的帮助信息

1
2
3
4
5
6
7
help(abs)
Help on built-in function abs in module __builtin__:

abs(...)
abs(number) -> number

Return the absolute value of the argument.

数据类型转换

Python内置常用的函数,比如int()函数就可以把其他数据类型转换为整数:

1
2
>>> int('123')
123

函数名其实就是函数对象的引用,所以可以用一个变量指向该引用,实现别名的效果

1
2
3
>>> a = abs
>>> a(-1)
1

主要使用函数时,一定要传入正确的参数,否则会出错。

函数的定义

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

1
2
def fun(x,y):
return x+y

空函数

定义一个什么事也不做的空函数,可以使用pass语句

1
2
def nop():
pass

参数检查

Python会进行参数个数的检查,如果不对会抛出TypeError,但是类型并不会进行检查

默认参数

在定义时为某个参数初始化一个值,若调用时,该参数缺省时,便会使用默认的值

1
2
3
4
5
6
def power(x,n = 2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s

可变参数

函数参数个数可变时,我们可以通过list或者tuple包装参数,传入函数,函数会接收到tuple

1
2
3
4
5
6
7
def add(numbers):
sum = 0
for number in numbers:
sum = sum + number
return sum

add([1,2,3,4,5])
1
2
3
4
5
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum

如果已经有一个list或者tuple,要调用一个可变参数怎么办?可以这样做:

1
2
3
>>> nums = [1, 2, 3]
>>> calc(nums[0], nums[1], nums[2])
14

关键字参数

关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装成为一个dict

1
2
def person(name,age,**kw):
print 'name:',name,'age':,age,'other:',kw

函数person除了参数nameage外,还接受关键字参数kw。在调用该函数时,可以之传入必选参数,或者任意个关键字参数

1
2
3
4
5
6
>>> person('Michael', 30)
name: Michael age: 30 other: {}
>>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}

参数组合

在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中的一部分,但定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
比如:

1
2
def fun(a,b,c=0,*args,**kw)
print 'a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw

调用时,Python接收器自动按照参数位置和参数名把对应的参数传进去

1
2
3
4
5
6
7
8
>>> func(1, 2)
a = 1 b = 2 c = 0 args = () kw = {}
>>> func(1, 2, c=3)
a = 1 b = 2 c = 3 args = () kw = {}
>>> func(1, 2, 3, 'a', 'b')
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}
>>> func(1, 2, 3, 'a', 'b', x=99)
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}

最神奇的是通过一个tuple和dict,你也可以调用该函数:

1
2
3
4
>>> args = (1, 2, 3, 4)
>>> kw = {'x': 99}
>>> func(*args, **kw)
a = 1 b = 2 c = 3 args = (4,) kw = {'x': 99}

递归函数

如果一个函数在内部调用自身,这个函数就是递归函数。
在Python中使用递归函数要注意栈溢出,在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。
解决递归调用栈溢出的方法是通过尾递归优化,事实上尾递归和循环的效果是一样的,所以,把循环看成是一种特殊的尾递归函数也是可以的。

  • 尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。

断断续续的学了几次Python了,所谓不求甚解,语法过了一遍没去用忘了,又过一遍又没去用又忘了。虽然现在用Python的机会不多,还是真心喜欢这门语言。所以还是另起门户,把学习笔记记下来,免得自己捡起来又扔掉了。

Python是著名的“龟叔”Guido van Russum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言(我的天。。。)。
牛逼闪闪的“龟叔”

Python提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,还有大量的第三方库。

Python的定位是优雅明确简单,Python是不能加密的,发布Python程序就相当于发布了源代码(到处都能看源代码,想想都有点小激动呢)。

安装Python

Mac

Python是Mac上的一等公民,天生自带。

Windows

1.从Python官网在下2.7.X版本
2.运行.MSI安装包,一路Nest即可
3.添加环境变量,即把Python的安装路径添加到系统环境变量path中去

Linux

没实践过不表,相信google、百度一大把

First Blood

国际惯例,我们编写一个Hello,World

在命令行里计入Python交互环境(Python,回车):

1
2
>>> print "Hello,world"
Hello,world

完成。

输入与输出

输出

print加上字符串,就可以向屏幕上输出指定的文字。比如输出'hello, world',用代码实现如下:

1
>>> print 'hello, world'

print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出:

1
2
>>> print 'The quick brown fox', 'jumps over', 'the lazy dog'
The quick brown fox jumps over the lazy dog

输入

Python提供了一个raw_input,可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:

1
2
3
4
>>> name = raw_input()
zoe
>>> name
'zoe'

当你输入name = raw_input()并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。
我们在文本编辑器中编写一个完整版的试试:

1
2
3
4
5
# !/usr/bin/env python

name = raw_input('please enter your name:')
print 'hello,',name

在终端运行,切换到文件的目录(注意权限,可能需要chmod a+x)

1
2
3
./hello.py
please enter your name:zoe
hello, zoe

Python基础

Python以# 开头的语句是注解,注解是给人看的,所以解释器会忽略掉注释。其他没一行都是一个语句,当语句以冒号":"结尾时,所接的语句视为代码块。
还有一点值得注意,Python是大小写敏感的,大小写区分,如果写错了大小写,程序会报错

数据类型

整数

Python可以处理任意大小的整数,包括负整数,如:1,1000,-1000,0等,十六进度也使用0x前缀和0-9a-f表示,如:0xffff,0xabcd1234

浮点数

数学写法,如1.23-4.53.1415926,科学计数法,把10用e表示,即1.23e913.54e-6

字符串

字符串是以’’或””括起来的任意文本,比如”abc”,’123xyz’.Python也有转义字符,如\n\t\'等等。
Python 还允许用r''表示’’内的字符串默认不转义:

1
2
3
4
>>> print '\\\t\\'
\ \
>>> print r'\\\t\\'
\\\t\\

Python允许使用'''...'''表示多行内容

1
2
3
4
5
6
7
8
>>> print '''line1
... line2
... line3
... line4'''
line1
line2
line3
line4

布尔值

布尔只存在TrueFalse两种值(注意大小写)
通过布尔运算:

1
2
3
4
5
6
>>> 3 > 3
False
>>> 3 >= 3
True
>>> 3 > 2
True

布尔值可以用and、or和not运算。

and运算是与运算,只有所有都为True,and运算结果才是True;
or运算是或运算,只要其中有一个为True,or运算结果就是True;
not运算是非运算,它是一个单目运算符,把True变成False,False变成True;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> not True
False
>>> not False
True

空值

空值在Python里用None表示

变量

Python里的变量貌似缺少定义的过程,而且不限制数据类型,可以是任意的数据类型,命名方式与C相同:必须是大小写英文、数字和_的组合,且不能用数字开头

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
>>> a = 2
>>> b = 5
>>> c = a
>>> a = b
>>> b = c
>>> print a,b,c
5 2 2
``

### 常量

常量即不可变的量,但是Python根本没有任何机制保证常量不可变,通常使用全部大写的变量名,表示常量,而不去改变它。

### Python数据之我见

Python其实是把任何数据都当作对象,变量只是指向这些数据对象

### 字符编码

#### 字符编码

字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。

因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。

由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。

但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。
因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。

现在,捋一捋ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。

字母A用ASCII编码是十进制的65,二进制的01000001;

字母0用ASCII编码是十进制的48,二进制的00110000,注意字母'0'和整数0是不同的;

汉字中已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。

你可以猜测,如果把ASCII编码的A用Unicode编码,只需要在前面补0就可以,因此,A的Unicode编码是00000000 01000001。

新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。

所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:

|**字符**|**ASCII**|**Unicode**|**UTF-8**|
|---|---|---|---|
|A|01000001|00000000 01000001|01000001
|中|x|01001110|00101101 11100100|10111000 10101101|
从上面的表格还可以发现,UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:
![](https://github.com/zt1991616/blog/raw/master/Image/14031402.png)
浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:
![](https://github.com/zt1991616/blog/raw/master/Image/14031403.png)

#### Python的字符串

Python提供了ord()和chr()函数,可以把字母和对应的数字相互转换:

ord(‘A’)
65

chr(65)
‘A’

1
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

print u’中文’
中文

u’中’
u’\u4e2d’

1
2

把u'xxx'转换为UTF-8编码的'xxx'用encode('utf-8')方法:

u’ABC’.encode(‘utf-8’)
‘ABC’

u’中文’.encode(‘utf-8’)
‘\xe4\xb8\xad\xe6\x96\x87’

1
2

len()函数可以返回字符串的长度:

len(u’ABC’)
3

len(‘ABC’)
3

len(u’中文’)
2

len(‘\xe4\xb8\xad\xe6\x96\x87’)
6

1
2

反过来,把UTF-8编码表示的字符串'xxx'转换为Unicode字符串u'xxx'用decode('utf-8')方法:

‘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’)
中文

1
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

!/usr/bin/env python

-- coding: utf-8 --

1
2
3
4
5
6
7
8
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

#### 格式化

格式化方式与C语言抑制,用`%`实现
例如:

‘Hello, %s’ % ‘world’
‘Hello, world’

‘Hi, %s, you have $%d.’ % (‘Zoe’, 1000000)
‘Hi, Zoe, you have $1000000.’

|%d|整数|
|---|---|
|%f|浮点数|
|%s|字符串|
|%x|十六进制数|

Bulgaria
93.123.23.1 93.123.23.2 93.123.23.3 93.123.23.4 93.123.23.5 93.123.23.6
93.123.23.7 93.123.23.8 93.123.23.9 93.123.23.10 93.123.23.11 93.123.23.12
93.123.23.13 93.123.23.14 93.123.23.15 93.123.23.16 93.123.23.17 93.123.23.18
93.123.23.19 93.123.23.20 93.123.23.21 93.123.23.22 93.123.23.23 93.123.23.24
93.123.23.25 93.123.23.26 93.123.23.27 93.123.23.28 93.123.23.29 93.123.23.30
93.123.23.31 93.123.23.32 93.123.23.33 93.123.23.34 93.123.23.35 93.123.23.36
93.123.23.37 93.123.23.38 93.123.23.39 93.123.23.40 93.123.23.41 93.123.23.42
93.123.23.43 93.123.23.44 93.123.23.45 93.123.23.46 93.123.23.47 93.123.23.48
93.123.23.49 93.123.23.50 93.123.23.51 93.123.23.52 93.123.23.53 93.123.23.54
93.123.23.55 93.123.23.56 93.123.23.57 93.123.23.58 93.123.23.59
Top
Egypt
197.199.253.1 197.199.253.2 197.199.253.3 197.199.253.4 197.199.253.5 197.199.253.6
197.199.253.7 197.199.253.8 197.199.253.9 197.199.253.10 197.199.253.11 197.199.253.12
197.199.253.13 197.199.253.14 197.199.253.15 197.199.253.16 197.199.253.17 197.199.253.18
197.199.253.19 197.199.253.20 197.199.253.21 197.199.253.22 197.199.253.23 197.199.253.24
197.199.253.25 197.199.253.26 197.199.253.27 197.199.253.28 197.199.253.29 197.199.253.30
197.199.253.31 197.199.253.32 197.199.253.33 197.199.253.34 197.199.253.35 197.199.253.36
197.199.253.37 197.199.253.38 197.199.253.39 197.199.253.40 197.199.253.41 197.199.253.42
197.199.253.43 197.199.253.44 197.199.253.45 197.199.253.46 197.199.253.47 197.199.253.48
197.199.253.49 197.199.253.50 197.199.253.51 197.199.253.52 197.199.253.53 197.199.253.54
197.199.253.55 197.199.253.56 197.199.253.57 197.199.253.58 197.199.253.59
Top
Egypt
197.199.254.1 197.199.254.2 197.199.254.3 197.199.254.4 197.199.254.5 197.199.254.6
197.199.254.7 197.199.254.8 197.199.254.9 197.199.254.10 197.199.254.11 197.199.254.12
197.199.254.13 197.199.254.14 197.199.254.15 197.199.254.16 197.199.254.17 197.199.254.18
197.199.254.19 197.199.254.20 197.199.254.21 197.199.254.22 197.199.254.23 197.199.254.24
197.199.254.25 197.199.254.26 197.199.254.27 197.199.254.28 197.199.254.29 197.199.254.30
197.199.254.31 197.199.254.32 197.199.254.33 197.199.254.34 197.199.254.35 197.199.254.36
197.199.254.37 197.199.254.38 197.199.254.39 197.199.254.40 197.199.254.41 197.199.254.42
197.199.254.43 197.199.254.44 197.199.254.45 197.199.254.46 197.199.254.47 197.199.254.48
197.199.254.49 197.199.254.50 197.199.254.51 197.199.254.52 197.199.254.53 197.199.254.54
197.199.254.55 197.199.254.56 197.199.254.57 197.199.254.58 197.199.254.59
Top
Hong Kong
218.189.25.129 218.189.25.130 218.189.25.131 218.189.25.132 218.189.25.133 218.189.25.134
218.189.25.135 218.189.25.136 218.189.25.137 218.189.25.138 218.189.25.139 218.189.25.140
218.189.25.141 218.189.25.142 218.189.25.143 218.189.25.144 218.189.25.145 218.189.25.146
218.189.25.147 218.189.25.148 218.189.25.149 218.189.25.150 218.189.25.151 218.189.25.152
218.189.25.153 218.189.25.154 218.189.25.155 218.189.25.156 218.189.25.157 218.189.25.158
218.189.25.159 218.189.25.160 218.189.25.161 218.189.25.162 218.189.25.163 218.189.25.164
218.189.25.165 218.189.25.166 218.189.25.167 218.189.25.168 218.189.25.169 218.189.25.170
218.189.25.171 218.189.25.172 218.189.25.173 218.189.25.174 218.189.25.175 218.189.25.176
218.189.25.177 218.189.25.178 218.189.25.179 218.189.25.180 218.189.25.181 218.189.25.182
218.189.25.183 218.189.25.184 218.189.25.185 218.189.25.186 218.189.25.187
Top
Hong Kong
218.253.0.76 218.253.0.77 218.253.0.78 218.253.0.79 218.253.0.80 218.253.0.81
218.253.0.82 218.253.0.83 218.253.0.84 218.253.0.85 218.253.0.86 218.253.0.87
218.253.0.88 218.253.0.89 218.253.0.90 218.253.0.91 218.253.0.92 218.253.0.140
218.253.0.141 218.253.0.142 218.253.0.143 218.253.0.144 218.253.0.145 218.253.0.146
218.253.0.147 218.253.0.148 218.253.0.149 218.253.0.150 218.253.0.151 218.253.0.152
218.253.0.153 218.253.0.154 218.253.0.155 218.253.0.156 218.253.0.157 218.253.0.158
218.253.0.159 218.253.0.160 218.253.0.161 218.253.0.162 218.253.0.163 218.253.0.164
218.253.0.165 218.253.0.166 218.253.0.167 218.253.0.168 218.253.0.169 218.253.0.170
218.253.0.171 218.253.0.172 218.253.0.173 218.253.0.174 218.253.0.175 218.253.0.176
218.253.0.177 218.253.0.178 218.253.0.179 218.253.0.180 218.253.0.181 218.253.0.182
218.253.0.183 218.253.0.184 218.253.0.185 218.253.0.186 218.253.0.187
Top
Iceland
149.126.86.1 149.126.86.2 149.126.86.3 149.126.86.4 149.126.86.5 149.126.86.6
149.126.86.7 149.126.86.8 149.126.86.9 149.126.86.10 149.126.86.11 149.126.86.12
149.126.86.13 149.126.86.14 149.126.86.15 149.126.86.16 149.126.86.17 149.126.86.18
149.126.86.19 149.126.86.20 149.126.86.21 149.126.86.22 149.126.86.23 149.126.86.24
149.126.86.25 149.126.86.26 149.126.86.27 149.126.86.28 149.126.86.29 149.126.86.30
149.126.86.31 149.126.86.32 149.126.86.33 149.126.86.34 149.126.86.35 149.126.86.36
149.126.86.37 149.126.86.38 149.126.86.39 149.126.86.40 149.126.86.41 149.126.86.42
149.126.86.43 149.126.86.44 149.126.86.45 149.126.86.46 149.126.86.47 149.126.86.48
149.126.86.49 149.126.86.50 149.126.86.51 149.126.86.52 149.126.86.53 149.126.86.54
149.126.86.55 149.126.86.56 149.126.86.57 149.126.86.58 149.126.86.59
Top
Indonesia
111.92.162.4 111.92.162.5 111.92.162.6 111.92.162.12 111.92.162.13 111.92.162.14
111.92.162.15 111.92.162.16 111.92.162.17 111.92.162.18 111.92.162.19 111.92.162.20
111.92.162.21 111.92.162.22 111.92.162.23 111.92.162.24 111.92.162.25 111.92.162.26
111.92.162.27 111.92.162.28 111.92.162.29 111.92.162.30 111.92.162.31 111.92.162.32
111.92.162.33 111.92.162.34 111.92.162.35 111.92.162.36 111.92.162.37 111.92.162.38
111.92.162.39 111.92.162.40 111.92.162.41 111.92.162.42 111.92.162.43 111.92.162.44
111.92.162.45 111.92.162.46 111.92.162.47 111.92.162.48 111.92.162.49 111.92.162.50
111.92.162.51 111.92.162.52 111.92.162.53 111.92.162.54 111.92.162.55 111.92.162.56
111.92.162.57 111.92.162.58 111.92.162.59
Top
Iraq
62.201.216.196 62.201.216.197 62.201.216.198 62.201.216.199 62.201.216.200 62.201.216.201
62.201.216.202 62.201.216.203 62.201.216.204 62.201.216.205 62.201.216.206 62.201.216.207
62.201.216.208 62.201.216.209 62.201.216.210 62.201.216.211 62.201.216.212 62.201.216.213
62.201.216.214 62.201.216.215 62.201.216.216 62.201.216.217 62.201.216.218 62.201.216.219
62.201.216.220 62.201.216.221 62.201.216.222 62.201.216.223 62.201.216.224 62.201.216.225
62.201.216.226 62.201.216.227 62.201.216.228 62.201.216.229 62.201.216.230 62.201.216.231
62.201.216.232 62.201.216.233 62.201.216.234 62.201.216.235 62.201.216.236 62.201.216.237
62.201.216.238 62.201.216.239 62.201.216.240 62.201.216.241 62.201.216.242 62.201.216.243
62.201.216.244 62.201.216.245 62.201.216.246 62.201.216.247 62.201.216.248 62.201.216.249
62.201.216.250 62.201.216.251
Top
Japan
218.176.242.4 218.176.242.5 218.176.242.6 218.176.242.7 218.176.242.8 218.176.242.9
218.176.242.10 218.176.242.11 218.176.242.12 218.176.242.13 218.176.242.14 218.176.242.15
218.176.242.16 218.176.242.17 218.176.242.18 218.176.242.19 218.176.242.20 218.176.242.21
218.176.242.22 218.176.242.23 218.176.242.24 218.176.242.25 218.176.242.26 218.176.242.27
218.176.242.28 218.176.242.29 218.176.242.30 218.176.242.31 218.176.242.32 218.176.242.33
218.176.242.34 218.176.242.35 218.176.242.36 218.176.242.37 218.176.242.38 218.176.242.39
218.176.242.40 218.176.242.41 218.176.242.42 218.176.242.43 218.176.242.44 218.176.242.45
218.176.242.46 218.176.242.47 218.176.242.48 218.176.242.49 218.176.242.50 218.176.242.51
218.176.242.52 218.176.242.53 218.176.242.54 218.176.242.55 218.176.242.56 218.176.242.57
218.176.242.58 218.176.242.59 218.176.242.60 218.176.242.61 218.176.242.62 218.176.242.63
218.176.242.64 218.176.242.65 218.176.242.66 218.176.242.67 218.176.242.68 218.176.242.69
218.176.242.70 218.176.242.71 218.176.242.72 218.176.242.73 218.176.242.74 218.176.242.75
218.176.242.76 218.176.242.77 218.176.242.78 218.176.242.79 218.176.242.80 218.176.242.81
218.176.242.82 218.176.242.83 218.176.242.84 218.176.242.85 218.176.242.86 218.176.242.87
218.176.242.88 218.176.242.89 218.176.242.90 218.176.242.91 218.176.242.92 218.176.242.93
218.176.242.94 218.176.242.95 218.176.242.96 218.176.242.97 218.176.242.98 218.176.242.99
218.176.242.100 218.176.242.101 218.176.242.102 218.176.242.103 218.176.242.104 218.176.242.105
218.176.242.106 218.176.242.107 218.176.242.108 218.176.242.109 218.176.242.110 218.176.242.111
218.176.242.112 218.176.242.113 218.176.242.114 218.176.242.115 218.176.242.116 218.176.242.117
218.176.242.118 218.176.242.119 218.176.242.120 218.176.242.121 218.176.242.122 218.176.242.123
218.176.242.124 218.176.242.125 218.176.242.126 218.176.242.127 218.176.242.128 218.176.242.129
218.176.242.130 218.176.242.131 218.176.242.132 218.176.242.133 218.176.242.134 218.176.242.135
218.176.242.136 218.176.242.137 218.176.242.138 218.176.242.139 218.176.242.140 218.176.242.141
218.176.242.142 218.176.242.143 218.176.242.144 218.176.242.145 218.176.242.146 218.176.242.147
218.176.242.148 218.176.242.149 218.176.242.150 218.176.242.151 218.176.242.152 218.176.242.153
218.176.242.154 218.176.242.155 218.176.242.156 218.176.242.157 218.176.242.158 218.176.242.159
218.176.242.160 218.176.242.161 218.176.242.162 218.176.242.163 218.176.242.164 218.176.242.165
218.176.242.166 218.176.242.167 218.176.242.168 218.176.242.169 218.176.242.170 218.176.242.171
218.176.242.172 218.176.242.173 218.176.242.174 218.176.242.175 218.176.242.176 218.176.242.177
218.176.242.178 218.176.242.179 218.176.242.180 218.176.242.181 218.176.242.182 218.176.242.183
218.176.242.184 218.176.242.185 218.176.242.186 218.176.242.187 218.176.242.188 218.176.242.189
218.176.242.190 218.176.242.191 218.176.242.192 218.176.242.193 218.176.242.194 218.176.242.195
218.176.242.196 218.176.242.197 218.176.242.198 218.176.242.199 218.176.242.200 218.176.242.201
218.176.242.202 218.176.242.203 218.176.242.204 218.176.242.205 218.176.242.206 218.176.242.207
218.176.242.208 218.176.242.209 218.176.242.210 218.176.242.211 218.176.242.212 218.176.242.213
218.176.242.214 218.176.242.215 218.176.242.216 218.176.242.217 218.176.242.218 218.176.242.219
218.176.242.220 218.176.242.221 218.176.242.222 218.176.242.223 218.176.242.224 218.176.242.225
218.176.242.226 218.176.242.227 218.176.242.228 218.176.242.229 218.176.242.230 218.176.242.231
218.176.242.232 218.176.242.233 218.176.242.234 218.176.242.235 218.176.242.236 218.176.242.237
218.176.242.238 218.176.242.239 218.176.242.240 218.176.242.241 218.176.242.242 218.176.242.243
218.176.242.244 218.176.242.245 218.176.242.246 218.176.242.247 218.176.242.248 218.176.242.249
218.176.242.250 218.176.242.251
Top
Kenya
41.84.159.12 41.84.159.13 41.84.159.14 41.84.159.15 41.84.159.16 41.84.159.17
41.84.159.18 41.84.159.19 41.84.159.20 41.84.159.21 41.84.159.22 41.84.159.23
41.84.159.24 41.84.159.25 41.84.159.26 41.84.159.27 41.84.159.28 41.84.159.29
41.84.159.30
Top
Korea
121.78.74.68 121.78.74.69 121.78.74.70 121.78.74.71 121.78.74.72 121.78.74.73
121.78.74.74 121.78.74.75 121.78.74.76 121.78.74.77 121.78.74.78 121.78.74.79
121.78.74.80 121.78.74.81 121.78.74.82 121.78.74.83 121.78.74.84 121.78.74.85
121.78.74.86 121.78.74.87 121.78.74.88 121.78.74.89 121.78.74.90 121.78.74.91
121.78.74.92 121.78.74.93 121.78.74.94 121.78.74.95 121.78.74.96 121.78.74.97
121.78.74.98 121.78.74.99 121.78.74.100 121.78.74.101 121.78.74.102 121.78.74.103
121.78.74.104 121.78.74.105 121.78.74.106 121.78.74.107 121.78.74.108 121.78.74.109
121.78.74.110 121.78.74.111 121.78.74.112 121.78.74.113 121.78.74.114 121.78.74.115
121.78.74.116 121.78.74.117 121.78.74.118 121.78.74.119 121.78.74.120 121.78.74.121
121.78.74.122 121.78.74.123
Top
Mauritius
41.206.96.1 41.206.96.2 41.206.96.3 41.206.96.4 41.206.96.5 41.206.96.6
41.206.96.7 41.206.96.8 41.206.96.9 41.206.96.10 41.206.96.11 41.206.96.12
41.206.96.13 41.206.96.14 41.206.96.15 41.206.96.16 41.206.96.17 41.206.96.18
41.206.96.19 41.206.96.20 41.206.96.21 41.206.96.22 41.206.96.23 41.206.96.24
41.206.96.25 41.206.96.26 41.206.96.27 41.206.96.28 41.206.96.29 41.206.96.30
41.206.96.31 41.206.96.32 41.206.96.33 41.206.96.34 41.206.96.35 41.206.96.36
41.206.96.37 41.206.96.38 41.206.96.39 41.206.96.40 41.206.96.41 41.206.96.42
41.206.96.43 41.206.96.44 41.206.96.45 41.206.96.46 41.206.96.47 41.206.96.48
41.206.96.49 41.206.96.50 41.206.96.51 41.206.96.52 41.206.96.53 41.206.96.54
41.206.96.55 41.206.96.56 41.206.96.57 41.206.96.58 41.206.96.59 41.206.96.60
41.206.96.61 41.206.96.62 41.206.96.63 41.206.96.64 41.206.96.65 41.206.96.66
41.206.96.67 41.206.96.68 41.206.96.69 41.206.96.70 41.206.96.71 41.206.96.72
41.206.96.73 41.206.96.74 41.206.96.75 41.206.96.76 41.206.96.77 41.206.96.78
41.206.96.79 41.206.96.80 41.206.96.81 41.206.96.82 41.206.96.83 41.206.96.84
41.206.96.85 41.206.96.86 41.206.96.87 41.206.96.88 41.206.96.89 41.206.96.90
41.206.96.91 41.206.96.92 41.206.96.93 41.206.96.94 41.206.96.95 41.206.96.96
41.206.96.97 41.206.96.98 41.206.96.99 41.206.96.100 41.206.96.101 41.206.96.102
41.206.96.103 41.206.96.104 41.206.96.105 41.206.96.106 41.206.96.107 41.206.96.108
41.206.96.109 41.206.96.110 41.206.96.111 41.206.96.112 41.206.96.113 41.206.96.114
41.206.96.115 41.206.96.116 41.206.96.117 41.206.96.118 41.206.96.119 41.206.96.120
41.206.96.121 41.206.96.122 41.206.96.123 41.206.96.124 41.206.96.125 41.206.96.126
41.206.96.127 41.206.96.128 41.206.96.129 41.206.96.130 41.206.96.131 41.206.96.132
41.206.96.133 41.206.96.134 41.206.96.135 41.206.96.136 41.206.96.137 41.206.96.138
41.206.96.139 41.206.96.140 41.206.96.141 41.206.96.142 41.206.96.143 41.206.96.144
41.206.96.145 41.206.96.146 41.206.96.147 41.206.96.148 41.206.96.149 41.206.96.150
41.206.96.151 41.206.96.152 41.206.96.153 41.206.96.154 41.206.96.155 41.206.96.156
41.206.96.157 41.206.96.158 41.206.96.159 41.206.96.160 41.206.96.161 41.206.96.162
41.206.96.163 41.206.96.164 41.206.96.165 41.206.96.166 41.206.96.167 41.206.96.168
41.206.96.169 41.206.96.170 41.206.96.171 41.206.96.172 41.206.96.173 41.206.96.174
41.206.96.175 41.206.96.176 41.206.96.177 41.206.96.178 41.206.96.179 41.206.96.180
41.206.96.181 41.206.96.182 41.206.96.183 41.206.96.184 41.206.96.185 41.206.96.186
41.206.96.187 41.206.96.188 41.206.96.189 41.206.96.190 41.206.96.191 41.206.96.192
41.206.96.193 41.206.96.194 41.206.96.195 41.206.96.196 41.206.96.197 41.206.96.198
41.206.96.199 41.206.96.200 41.206.96.201 41.206.96.202 41.206.96.203 41.206.96.204
41.206.96.205 41.206.96.206 41.206.96.207 41.206.96.208 41.206.96.209 41.206.96.210
41.206.96.211 41.206.96.212 41.206.96.213 41.206.96.214 41.206.96.215 41.206.96.216
41.206.96.217 41.206.96.218 41.206.96.219 41.206.96.220 41.206.96.221 41.206.96.222
41.206.96.223 41.206.96.224 41.206.96.225 41.206.96.226 41.206.96.227 41.206.96.228
41.206.96.229 41.206.96.230 41.206.96.231 41.206.96.232 41.206.96.233 41.206.96.234
41.206.96.235 41.206.96.236 41.206.96.237 41.206.96.238 41.206.96.239 41.206.96.240
41.206.96.241 41.206.96.242 41.206.96.243 41.206.96.244 41.206.96.245 41.206.96.246
41.206.96.247 41.206.96.248 41.206.96.249 41.206.96.250 41.206.96.251
Top
Netherlands
88.159.13.196 88.159.13.197 88.159.13.198 88.159.13.199 88.159.13.200 88.159.13.201
88.159.13.202 88.159.13.203 88.159.13.204 88.159.13.205 88.159.13.206 88.159.13.207
88.159.13.208 88.159.13.209 88.159.13.210 88.159.13.211 88.159.13.212 88.159.13.213
88.159.13.214 88.159.13.215 88.159.13.216 88.159.13.217 88.159.13.218 88.159.13.219
88.159.13.220 88.159.13.221 88.159.13.222 88.159.13.223 88.159.13.224 88.159.13.225
88.159.13.226 88.159.13.227 88.159.13.228 88.159.13.229 88.159.13.230 88.159.13.231
88.159.13.232 88.159.13.233 88.159.13.234 88.159.13.235 88.159.13.236 88.159.13.237
88.159.13.238 88.159.13.239 88.159.13.240 88.159.13.241 88.159.13.242 88.159.13.243
88.159.13.244 88.159.13.245 88.159.13.246 88.159.13.247 88.159.13.248 88.159.13.249
88.159.13.250 88.159.13.251
Top
Norway
193.90.147.0 193.90.147.1 193.90.147.2 193.90.147.3 193.90.147.4 193.90.147.5
193.90.147.6 193.90.147.7 193.90.147.12 193.90.147.13 193.90.147.14 193.90.147.15
193.90.147.16 193.90.147.17 193.90.147.18 193.90.147.19 193.90.147.20 193.90.147.21
193.90.147.22 193.90.147.23 193.90.147.24 193.90.147.25 193.90.147.26 193.90.147.27
193.90.147.28 193.90.147.29 193.90.147.30 193.90.147.31 193.90.147.32 193.90.147.33
193.90.147.34 193.90.147.35 193.90.147.36 193.90.147.37 193.90.147.38 193.90.147.39
193.90.147.40 193.90.147.41 193.90.147.42 193.90.147.43 193.90.147.44 193.90.147.45
193.90.147.46 193.90.147.47 193.90.147.48 193.90.147.49 193.90.147.50 193.90.147.51
193.90.147.52 193.90.147.53 193.90.147.54 193.90.147.55 193.90.147.56 193.90.147.57
193.90.147.58 193.90.147.59 193.90.147.76 193.90.147.77 193.90.147.78 193.90.147.79
193.90.147.80 193.90.147.81 193.90.147.82 193.90.147.83 193.90.147.84 193.90.147.85
193.90.147.86 193.90.147.87 193.90.147.88 193.90.147.89 193.90.147.90 193.90.147.91
193.90.147.92 193.90.147.93 193.90.147.94 193.90.147.95 193.90.147.96 193.90.147.97
193.90.147.98 193.90.147.99 193.90.147.100 193.90.147.101 193.90.147.102 193.90.147.103
193.90.147.104 193.90.147.105 193.90.147.106 193.90.147.107 193.90.147.108 193.90.147.109
193.90.147.110 193.90.147.111 193.90.147.112 193.90.147.113 193.90.147.114 193.90.147.115
193.90.147.116 193.90.147.117 193.90.147.118 193.90.147.119 193.90.147.120 193.90.147.121
193.90.147.122 193.90.147.123
Top
Philippines
103.25.178.4 103.25.178.5 103.25.178.6 103.25.178.12 103.25.178.13 103.25.178.14
103.25.178.15 103.25.178.16 103.25.178.17 103.25.178.18 103.25.178.19 103.25.178.20
103.25.178.21 103.25.178.22 103.25.178.23 103.25.178.24 103.25.178.25 103.25.178.26
103.25.178.27 103.25.178.28 103.25.178.29 103.25.178.30 103.25.178.31 103.25.178.32
103.25.178.33 103.25.178.34 103.25.178.35 103.25.178.36 103.25.178.37 103.25.178.38
103.25.178.39 103.25.178.40 103.25.178.41 103.25.178.42 103.25.178.43 103.25.178.44
103.25.178.45 103.25.178.46 103.25.178.47 103.25.178.48 103.25.178.49 103.25.178.50
103.25.178.51 103.25.178.52 103.25.178.53 103.25.178.54 103.25.178.55 103.25.178.56
103.25.178.57 103.25.178.58 103.25.178.59
Top
Russia
178.45.251.4 178.45.251.5 178.45.251.6 178.45.251.7 178.45.251.8 178.45.251.9
178.45.251.10 178.45.251.11 178.45.251.12 178.45.251.13 178.45.251.14 178.45.251.15
178.45.251.16 178.45.251.17 178.45.251.18 178.45.251.19 178.45.251.20 178.45.251.21
178.45.251.22 178.45.251.23 178.45.251.24 178.45.251.25 178.45.251.26 178.45.251.27
178.45.251.28 178.45.251.29 178.45.251.30 178.45.251.31 178.45.251.32 178.45.251.33
178.45.251.34 178.45.251.35 178.45.251.36 178.45.251.37 178.45.251.38 178.45.251.39
178.45.251.40 178.45.251.41 178.45.251.42 178.45.251.43 178.45.251.44 178.45.251.45
178.45.251.46 178.45.251.47 178.45.251.48 178.45.251.49 178.45.251.50 178.45.251.51
178.45.251.52 178.45.251.53 178.45.251.54 178.45.251.55 178.45.251.56 178.45.251.57
178.45.251.58 178.45.251.59 178.45.251.60 178.45.251.61 178.45.251.62 178.45.251.63
178.45.251.64 178.45.251.65 178.45.251.66 178.45.251.67 178.45.251.68 178.45.251.69
178.45.251.70 178.45.251.71 178.45.251.72 178.45.251.73 178.45.251.74 178.45.251.75
178.45.251.76 178.45.251.77 178.45.251.78 178.45.251.79 178.45.251.80 178.45.251.81
178.45.251.82 178.45.251.83 178.45.251.84 178.45.251.85 178.45.251.86 178.45.251.87
178.45.251.88 178.45.251.89 178.45.251.90 178.45.251.91 178.45.251.92 178.45.251.93
178.45.251.94 178.45.251.95 178.45.251.96 178.45.251.97 178.45.251.98 178.45.251.99
178.45.251.100 178.45.251.101 178.45.251.102 178.45.251.103 178.45.251.104 178.45.251.105
178.45.251.106 178.45.251.107 178.45.251.108 178.45.251.109 178.45.251.110 178.45.251.111
178.45.251.112 178.45.251.113 178.45.251.114 178.45.251.115 178.45.251.116 178.45.251.117
178.45.251.118 178.45.251.119 178.45.251.120 178.45.251.121 178.45.251.122 178.45.251.123
Top
Saudi Arabia
84.235.77.1 84.235.77.2 84.235.77.3 84.235.77.4 84.235.77.5 84.235.77.6
84.235.77.7 84.235.77.8 84.235.77.9 84.235.77.10 84.235.77.11 84.235.77.12
84.235.77.13 84.235.77.14 84.235.77.15 84.235.77.16 84.235.77.17 84.235.77.18
84.235.77.19 84.235.77.20 84.235.77.21 84.235.77.22 84.235.77.23 84.235.77.24
84.235.77.25 84.235.77.26 84.235.77.27 84.235.77.28 84.235.77.29 84.235.77.30
84.235.77.31 84.235.77.32 84.235.77.33 84.235.77.34 84.235.77.35 84.235.77.36
84.235.77.37 84.235.77.38 84.235.77.39 84.235.77.40 84.235.77.41 84.235.77.42
84.235.77.43 84.235.77.44 84.235.77.45 84.235.77.46 84.235.77.47 84.235.77.48
84.235.77.49 84.235.77.50 84.235.77.51 84.235.77.52 84.235.77.53 84.235.77.54
84.235.77.55 84.235.77.56 84.235.77.57 84.235.77.58 84.235.77.59 84.235.77.60
84.235.77.61 84.235.77.62 84.235.77.63 84.235.77.64 84.235.77.65 84.235.77.66
84.235.77.67 84.235.77.68 84.235.77.69 84.235.77.70 84.235.77.71 84.235.77.72
84.235.77.73 84.235.77.74 84.235.77.75 84.235.77.76 84.235.77.77 84.235.77.78
84.235.77.79 84.235.77.80 84.235.77.81 84.235.77.82 84.235.77.83 84.235.77.84
84.235.77.85 84.235.77.86 84.235.77.87 84.235.77.88 84.235.77.89 84.235.77.90
84.235.77.91 84.235.77.92 84.235.77.93 84.235.77.94 84.235.77.95 84.235.77.96
84.235.77.97 84.235.77.98 84.235.77.99 84.235.77.100 84.235.77.101 84.235.77.102
84.235.77.103 84.235.77.104 84.235.77.105 84.235.77.106 84.235.77.107 84.235.77.108
84.235.77.109 84.235.77.110 84.235.77.111 84.235.77.112 84.235.77.113 84.235.77.114
84.235.77.115 84.235.77.116 84.235.77.117 84.235.77.118 84.235.77.119 84.235.77.120
84.235.77.121 84.235.77.122 84.235.77.123 84.235.77.124 84.235.77.125 84.235.77.126
84.235.77.127 84.235.77.128 84.235.77.129 84.235.77.130 84.235.77.131 84.235.77.132
84.235.77.133 84.235.77.134 84.235.77.135 84.235.77.136 84.235.77.137 84.235.77.138
84.235.77.139 84.235.77.140 84.235.77.141 84.235.77.142 84.235.77.143 84.235.77.144
84.235.77.145 84.235.77.146 84.235.77.147 84.235.77.148 84.235.77.149 84.235.77.150
84.235.77.151 84.235.77.152 84.235.77.153 84.235.77.154 84.235.77.155 84.235.77.156
84.235.77.157 84.235.77.158 84.235.77.159 84.235.77.160 84.235.77.161 84.235.77.162
84.235.77.163 84.235.77.164 84.235.77.165 84.235.77.166 84.235.77.167 84.235.77.168
84.235.77.169 84.235.77.170 84.235.77.171 84.235.77.172 84.235.77.173 84.235.77.174
84.235.77.175 84.235.77.176 84.235.77.177 84.235.77.178 84.235.77.179 84.235.77.180
84.235.77.181 84.235.77.182 84.235.77.183 84.235.77.184 84.235.77.185 84.235.77.186
84.235.77.187 84.235.77.188 84.235.77.189 84.235.77.190 84.235.77.191 84.235.77.192
84.235.77.193 84.235.77.194 84.235.77.195 84.235.77.196 84.235.77.197 84.235.77.198
84.235.77.199 84.235.77.200 84.235.77.201 84.235.77.202 84.235.77.203 84.235.77.204
84.235.77.205 84.235.77.206 84.235.77.207 84.235.77.208 84.235.77.209 84.235.77.210
84.235.77.211 84.235.77.212 84.235.77.213 84.235.77.214 84.235.77.215 84.235.77.216
84.235.77.217 84.235.77.218 84.235.77.219 84.235.77.220 84.235.77.221 84.235.77.222
84.235.77.223 84.235.77.224 84.235.77.225 84.235.77.226 84.235.77.227 84.235.77.228
84.235.77.229 84.235.77.230 84.235.77.231 84.235.77.232 84.235.77.233 84.235.77.234
84.235.77.235 84.235.77.236 84.235.77.237 84.235.77.238 84.235.77.239 84.235.77.240
84.235.77.241 84.235.77.242 84.235.77.243 84.235.77.244 84.235.77.245 84.235.77.246
84.235.77.247 84.235.77.248 84.235.77.249 84.235.77.250 84.235.77.251
Top
Serbia
213.240.44.5 213.240.44.6 213.240.44.7 213.240.44.8 213.240.44.9 213.240.44.10
213.240.44.11 213.240.44.12 213.240.44.13 213.240.44.14 213.240.44.15 213.240.44.16
213.240.44.17 213.240.44.18 213.240.44.19 213.240.44.20 213.240.44.21 213.240.44.22
213.240.44.23 213.240.44.24 213.240.44.25 213.240.44.26 213.240.44.27
Top
Singapore
203.116.165.129 203.116.165.130 203.116.165.131 203.116.165.132 203.116.165.133 203.116.165.134
203.116.165.135 203.116.165.136 203.116.165.137 203.116.165.138 203.116.165.139 203.116.165.140
203.116.165.141 203.116.165.142 203.116.165.143 203.116.165.144 203.116.165.145 203.116.165.146
203.116.165.147 203.116.165.148 203.116.165.149 203.116.165.150 203.116.165.151 203.116.165.152
203.116.165.153 203.116.165.154 203.116.165.155 203.116.165.156 203.116.165.157 203.116.165.158
203.116.165.159 203.116.165.160 203.116.165.161 203.116.165.162 203.116.165.163 203.116.165.164
203.116.165.165 203.116.165.166 203.116.165.167 203.116.165.168 203.116.165.169 203.116.165.170
203.116.165.171 203.116.165.172 203.116.165.173 203.116.165.174 203.116.165.175 203.116.165.176
203.116.165.177 203.116.165.178 203.116.165.179 203.116.165.180 203.116.165.181 203.116.165.182
203.116.165.183 203.116.165.184 203.116.165.185 203.116.165.186 203.116.165.187 203.116.165.188
203.116.165.189 203.116.165.190 203.116.165.191 203.116.165.192 203.116.165.193 203.116.165.194
203.116.165.195 203.116.165.196 203.116.165.197 203.116.165.198 203.116.165.199 203.116.165.200
203.116.165.201 203.116.165.202 203.116.165.203 203.116.165.204 203.116.165.205 203.116.165.206
203.116.165.207 203.116.165.208 203.116.165.209 203.116.165.210 203.116.165.211 203.116.165.212
203.116.165.213 203.116.165.214 203.116.165.215 203.116.165.216 203.116.165.217 203.116.165.218
203.116.165.219 203.116.165.220 203.116.165.221 203.116.165.222 203.116.165.223 203.116.165.224
203.116.165.225 203.116.165.226 203.116.165.227 203.116.165.228 203.116.165.229 203.116.165.230
203.116.165.231 203.116.165.232 203.116.165.233 203.116.165.234 203.116.165.235 203.116.165.236
203.116.165.237 203.116.165.238 203.116.165.239 203.116.165.240 203.116.165.241 203.116.165.242
203.116.165.243 203.116.165.244 203.116.165.245 203.116.165.246 203.116.165.247 203.116.165.248
203.116.165.249 203.116.165.250 203.116.165.251 203.116.165.252 203.116.165.253 203.116.165.254
203.116.165.255
Top
Singapore
203.117.34.132 203.117.34.133 203.117.34.134 203.117.34.135 203.117.34.136 203.117.34.137
203.117.34.138 203.117.34.139 203.117.34.140 203.117.34.141 203.117.34.142 203.117.34.143
203.117.34.144 203.117.34.145 203.117.34.146 203.117.34.147 203.117.34.148 203.117.34.149
203.117.34.150 203.117.34.151 203.117.34.152 203.117.34.153 203.117.34.154 203.117.34.155
203.117.34.156 203.117.34.157 203.117.34.158 203.117.34.159 203.117.34.160 203.117.34.161
203.117.34.162 203.117.34.163 203.117.34.164 203.117.34.165 203.117.34.166 203.117.34.167
203.117.34.168 203.117.34.169 203.117.34.170 203.117.34.171 203.117.34.172 203.117.34.173
203.117.34.174 203.117.34.175 203.117.34.176 203.117.34.177 203.117.34.178 203.117.34.179
203.117.34.180 203.117.34.181 203.117.34.182 203.117.34.183 203.117.34.184 203.117.34.185
203.117.34.186 203.117.34.187
Top
Slovakia
62.197.198.193 62.197.198.194 62.197.198.195 62.197.198.196 62.197.198.197 62.197.198.198
62.197.198.199 62.197.198.200 62.197.198.201 62.197.198.202 62.197.198.203 62.197.198.204
62.197.198.205 62.197.198.206 62.197.198.207 62.197.198.208 62.197.198.209 62.197.198.210
62.197.198.211 62.197.198.212 62.197.198.213 62.197.198.214 62.197.198.215 62.197.198.216
62.197.198.217 62.197.198.218 62.197.198.219 62.197.198.220 62.197.198.221 62.197.198.222
62.197.198.223 62.197.198.224 62.197.198.225 62.197.198.226 62.197.198.227 62.197.198.228
62.197.198.229 62.197.198.230 62.197.198.231 62.197.198.232 62.197.198.233 62.197.198.234
62.197.198.235 62.197.198.236 62.197.198.237 62.197.198.238 62.197.198.239 62.197.198.240
62.197.198.241 62.197.198.242 62.197.198.243 62.197.198.244 62.197.198.245 62.197.198.246
62.197.198.247 62.197.198.248 62.197.198.249 62.197.198.250 62.197.198.251
Top
Slovakia
87.244.198.161 87.244.198.162 87.244.198.163 87.244.198.164 87.244.198.165 87.244.198.166
87.244.198.167 87.244.198.168 87.244.198.169 87.244.198.170 87.244.198.171 87.244.198.172
87.244.198.173 87.244.198.174 87.244.198.175 87.244.198.176 87.244.198.177 87.244.198.178
87.244.198.179 87.244.198.180 87.244.198.181 87.244.198.182 87.244.198.183 87.244.198.184
87.244.198.185 87.244.198.186 87.244.198.187
Top
Taiwan
123.205.250.68 123.205.250.69 123.205.250.70 123.205.250.71 123.205.250.72 123.205.250.73
123.205.250.74 123.205.250.75 123.205.250.76 123.205.250.77 123.205.250.78 123.205.250.79
123.205.250.80 123.205.250.81 123.205.250.82 123.205.250.83 123.205.250.84 123.205.250.85
123.205.250.86 123.205.250.87 123.205.250.88 123.205.250.89 123.205.250.90 123.205.250.91
123.205.250.92 123.205.250.93 123.205.250.94 123.205.250.95 123.205.250.96 123.205.250.97
123.205.250.98 123.205.250.99 123.205.250.100 123.205.250.101 123.205.250.102 123.205.250.103
123.205.250.104 123.205.250.105 123.205.250.106 123.205.250.107 123.205.250.108 123.205.250.109
123.205.250.110 123.205.250.111 123.205.250.112 123.205.250.113 123.205.250.114 123.205.250.115
123.205.250.116 123.205.250.117 123.205.250.118 123.205.250.119 123.205.250.120 123.205.250.121
123.205.250.122 123.205.250.123 123.205.250.124 123.205.250.125 123.205.250.126 123.205.250.127
123.205.250.128 123.205.250.129 123.205.250.130 123.205.250.131 123.205.250.132 123.205.250.133
123.205.250.134 123.205.250.135 123.205.250.136 123.205.250.137 123.205.250.138 123.205.250.139
123.205.250.140 123.205.250.141 123.205.250.142 123.205.250.143 123.205.250.144 123.205.250.145
123.205.250.146 123.205.250.147 123.205.250.148 123.205.250.149 123.205.250.150 123.205.250.151
123.205.250.152 123.205.250.153 123.205.250.154 123.205.250.155 123.205.250.156 123.205.250.157
123.205.250.158 123.205.250.159 123.205.250.160 123.205.250.161 123.205.250.162 123.205.250.163
123.205.250.164 123.205.250.165 123.205.250.166 123.205.250.167 123.205.250.168 123.205.250.169
123.205.250.170 123.205.250.171 123.205.250.172 123.205.250.173 123.205.250.174 123.205.250.175
123.205.250.176 123.205.250.177 123.205.250.178 123.205.250.179 123.205.250.180 123.205.250.181
123.205.250.182 123.205.250.183 123.205.250.184 123.205.250.185 123.205.250.186 123.205.250.187
123.205.250.188 123.205.250.189 123.205.250.190
Top
Taiwan
123.205.251.68 123.205.251.69 123.205.251.70 123.205.251.71 123.205.251.72 123.205.251.73
123.205.251.74 123.205.251.75 123.205.251.76 123.205.251.77 123.205.251.78 123.205.251.79
123.205.251.80 123.205.251.81 123.205.251.82 123.205.251.83 123.205.251.84 123.205.251.85
123.205.251.86 123.205.251.87 123.205.251.88 123.205.251.89 123.205.251.90 123.205.251.91
123.205.251.92 123.205.251.93 123.205.251.94 123.205.251.95 123.205.251.96 123.205.251.97
123.205.251.98 123.205.251.99 123.205.251.100 123.205.251.101 123.205.251.102 123.205.251.103
123.205.251.104 123.205.251.105 123.205.251.106 123.205.251.107 123.205.251.108 123.205.251.109
123.205.251.110 123.205.251.111 123.205.251.112 123.205.251.113 123.205.251.114 123.205.251.115
123.205.251.116 123.205.251.117 123.205.251.118 123.205.251.119 123.205.251.120 123.205.251.121
123.205.251.122 123.205.251.123
Top
Taiwan
163.28.116.1 163.28.116.2 163.28.116.3 163.28.116.4 163.28.116.5 163.28.116.6
163.28.116.7 163.28.116.8 163.28.116.9 163.28.116.10 163.28.116.11 163.28.116.12
163.28.116.13 163.28.116.14 163.28.116.15 163.28.116.16 163.28.116.17 163.28.116.18
163.28.116.19 163.28.116.20 163.28.116.21 163.28.116.22 163.28.116.23 163.28.116.24
163.28.116.25 163.28.116.26 163.28.116.27 163.28.116.28 163.28.116.29 163.28.116.30
163.28.116.31 163.28.116.32 163.28.116.33 163.28.116.34 163.28.116.35 163.28.116.36
163.28.116.37 163.28.116.38 163.28.116.39 163.28.116.40 163.28.116.41 163.28.116.42
163.28.116.43 163.28.116.44 163.28.116.45 163.28.116.46 163.28.116.47 163.28.116.48
163.28.116.49 163.28.116.50 163.28.116.51 163.28.116.52 163.28.116.53 163.28.116.54
163.28.116.55 163.28.116.56 163.28.116.57 163.28.116.58 163.28.116.59
Top
Taiwan
163.28.83.143 163.28.83.144 163.28.83.145 163.28.83.146 163.28.83.147 163.28.83.148
163.28.83.149 163.28.83.150 163.28.83.151 163.28.83.152 163.28.83.153 163.28.83.154
163.28.83.155 163.28.83.156 163.28.83.157 163.28.83.158 163.28.83.159 163.28.83.160
163.28.83.161 163.28.83.162 163.28.83.163 163.28.83.164 163.28.83.165 163.28.83.166
163.28.83.167 163.28.83.168 163.28.83.169 163.28.83.170 163.28.83.171 163.28.83.172
163.28.83.173 163.28.83.174 163.28.83.175 163.28.83.176 163.28.83.177 163.28.83.178
163.28.83.179 163.28.83.180 163.28.83.181 163.28.83.182 163.28.83.183 163.28.83.184
163.28.83.185 163.28.83.186 163.28.83.187
Top
Taiwan
202.39.143.1 202.39.143.2 202.39.143.3 202.39.143.4 202.39.143.5 202.39.143.6
202.39.143.7 202.39.143.8 202.39.143.9 202.39.143.10 202.39.143.11 202.39.143.12
202.39.143.13 202.39.143.14 202.39.143.15 202.39.143.16 202.39.143.17 202.39.143.18
202.39.143.19 202.39.143.20 202.39.143.21 202.39.143.22 202.39.143.23 202.39.143.24
202.39.143.25 202.39.143.26 202.39.143.27 202.39.143.28 202.39.143.29 202.39.143.30
202.39.143.31 202.39.143.32 202.39.143.33 202.39.143.34 202.39.143.35 202.39.143.36
202.39.143.37 202.39.143.38 202.39.143.39 202.39.143.40 202.39.143.41 202.39.143.42
202.39.143.43 202.39.143.44 202.39.143.45 202.39.143.46 202.39.143.47 202.39.143.48
202.39.143.49 202.39.143.50 202.39.143.51 202.39.143.52 202.39.143.53 202.39.143.54
202.39.143.55 202.39.143.56 202.39.143.57 202.39.143.58 202.39.143.59 202.39.143.60
202.39.143.61 202.39.143.62 202.39.143.63 202.39.143.64 202.39.143.65 202.39.143.66
202.39.143.67 202.39.143.68 202.39.143.69 202.39.143.70 202.39.143.71 202.39.143.72
202.39.143.73 202.39.143.74 202.39.143.75 202.39.143.76 202.39.143.77 202.39.143.78
202.39.143.79 202.39.143.80 202.39.143.81 202.39.143.82 202.39.143.83 202.39.143.84
202.39.143.85 202.39.143.86 202.39.143.87 202.39.143.88 202.39.143.89 202.39.143.90
202.39.143.91 202.39.143.92 202.39.143.93 202.39.143.94 202.39.143.95 202.39.143.96
202.39.143.97 202.39.143.98 202.39.143.99 202.39.143.100 202.39.143.101 202.39.143.102
202.39.143.103 202.39.143.104 202.39.143.105 202.39.143.106 202.39.143.107 202.39.143.108
202.39.143.109 202.39.143.110 202.39.143.111 202.39.143.112 202.39.143.113 202.39.143.114
202.39.143.115 202.39.143.116 202.39.143.117 202.39.143.118 202.39.143.119 202.39.143.120
202.39.143.121 202.39.143.122 202.39.143.123
Top
Taiwan
203.211.0.4 203.211.0.5 203.211.0.6 203.211.0.7 203.211.0.8 203.211.0.9
203.211.0.10 203.211.0.11 203.211.0.12 203.211.0.13 203.211.0.14 203.211.0.15
203.211.0.16 203.211.0.17 203.211.0.18 203.211.0.19 203.211.0.20 203.211.0.21
203.211.0.22 203.211.0.23 203.211.0.24 203.211.0.25 203.211.0.26 203.211.0.27
203.211.0.28 203.211.0.29 203.211.0.30 203.211.0.31 203.211.0.32 203.211.0.33
203.211.0.34 203.211.0.35 203.211.0.36 203.211.0.37 203.211.0.38 203.211.0.39
203.211.0.40 203.211.0.41 203.211.0.42 203.211.0.43 203.211.0.44 203.211.0.45
203.211.0.46 203.211.0.47 203.211.0.48 203.211.0.49 203.211.0.50 203.211.0.51
203.211.0.52 203.211.0.53 203.211.0.54 203.211.0.55 203.211.0.56 203.211.0.57
203.211.0.58 203.211.0.59
Top
Taiwan
203.66.124.129 203.66.124.130 203.66.124.131 203.66.124.132 203.66.124.133 203.66.124.134
203.66.124.135 203.66.124.136 203.66.124.137 203.66.124.138 203.66.124.139 203.66.124.140
203.66.124.141 203.66.124.142 203.66.124.143 203.66.124.144 203.66.124.145 203.66.124.146
203.66.124.147 203.66.124.148 203.66.124.149 203.66.124.150 203.66.124.151 203.66.124.152
203.66.124.153 203.66.124.154 203.66.124.155 203.66.124.156 203.66.124.157 203.66.124.158
203.66.124.159 203.66.124.160 203.66.124.161 203.66.124.162 203.66.124.163 203.66.124.164
203.66.124.165 203.66.124.166 203.66.124.167 203.66.124.168 203.66.124.169 203.66.124.170
203.66.124.171 203.66.124.172 203.66.124.173 203.66.124.174 203.66.124.175 203.66.124.176
203.66.124.177 203.66.124.178 203.66.124.179 203.66.124.180 203.66.124.181 203.66.124.182
203.66.124.183 203.66.124.184 203.66.124.185 203.66.124.186 203.66.124.187 203.66.124.188
203.66.124.189 203.66.124.190 203.66.124.191 203.66.124.192 203.66.124.193 203.66.124.194
203.66.124.195 203.66.124.196 203.66.124.197 203.66.124.198 203.66.124.199 203.66.124.200
203.66.124.201 203.66.124.202 203.66.124.203 203.66.124.204 203.66.124.205 203.66.124.206
203.66.124.207 203.66.124.208 203.66.124.209 203.66.124.210 203.66.124.211 203.66.124.212
203.66.124.213 203.66.124.214 203.66.124.215 203.66.124.216 203.66.124.217 203.66.124.218
203.66.124.219 203.66.124.220 203.66.124.221 203.66.124.222 203.66.124.223 203.66.124.224
203.66.124.225 203.66.124.226 203.66.124.227 203.66.124.228 203.66.124.229 203.66.124.230
203.66.124.231 203.66.124.232 203.66.124.233 203.66.124.234 203.66.124.235 203.66.124.236
203.66.124.237 203.66.124.238 203.66.124.239 203.66.124.240 203.66.124.241 203.66.124.242
203.66.124.243 203.66.124.244 203.66.124.245 203.66.124.246 203.66.124.247 203.66.124.248
203.66.124.249 203.66.124.250 203.66.124.251
Top
Taiwan
210.61.221.65 210.61.221.66 210.61.221.67 210.61.221.68 210.61.221.69 210.61.221.70
210.61.221.71 210.61.221.72 210.61.221.73 210.61.221.74 210.61.221.75 210.61.221.76
210.61.221.77 210.61.221.78 210.61.221.79 210.61.221.80 210.61.221.81 210.61.221.82
210.61.221.83 210.61.221.84 210.61.221.85 210.61.221.86 210.61.221.87 210.61.221.88
210.61.221.89 210.61.221.90 210.61.221.91 210.61.221.92 210.61.221.93 210.61.221.94
210.61.221.95 210.61.221.96 210.61.221.97 210.61.221.98 210.61.221.99 210.61.221.100
210.61.221.101 210.61.221.102 210.61.221.103 210.61.221.104 210.61.221.105 210.61.221.106
210.61.221.107 210.61.221.108 210.61.221.109 210.61.221.110 210.61.221.111 210.61.221.112
210.61.221.113 210.61.221.114 210.61.221.115 210.61.221.116 210.61.221.117 210.61.221.118
210.61.221.119 210.61.221.120 210.61.221.121 210.61.221.122 210.61.221.123 210.61.221.124
210.61.221.125 210.61.221.126 210.61.221.127 210.61.221.128 210.61.221.129 210.61.221.130
210.61.221.131 210.61.221.132 210.61.221.133 210.61.221.134 210.61.221.135 210.61.221.136
210.61.221.137 210.61.221.138 210.61.221.139 210.61.221.140 210.61.221.141 210.61.221.142
210.61.221.143 210.61.221.144 210.61.221.145 210.61.221.146 210.61.221.147 210.61.221.148
210.61.221.149 210.61.221.150 210.61.221.151 210.61.221.152 210.61.221.153 210.61.221.154
210.61.221.155 210.61.221.156 210.61.221.157 210.61.221.158 210.61.221.159 210.61.221.160
210.61.221.161 210.61.221.162 210.61.221.163 210.61.221.164 210.61.221.165 210.61.221.166
210.61.221.167 210.61.221.168 210.61.221.169 210.61.221.170 210.61.221.171 210.61.221.172
210.61.221.173 210.61.221.174 210.61.221.175 210.61.221.176 210.61.221.177 210.61.221.178
210.61.221.179 210.61.221.180 210.61.221.181 210.61.221.182 210.61.221.183 210.61.221.184
210.61.221.185 210.61.221.186 210.61.221.187
Top
Taiwan
60.199.175.1 60.199.175.2 60.199.175.3 60.199.175.4 60.199.175.5 60.199.175.6
60.199.175.7 60.199.175.8 60.199.175.9 60.199.175.10 60.199.175.11 60.199.175.12
60.199.175.13 60.199.175.14 60.199.175.15 60.199.175.16 60.199.175.17 60.199.175.18
60.199.175.19 60.199.175.20 60.199.175.21 60.199.175.22 60.199.175.23 60.199.175.24
60.199.175.25 60.199.175.26 60.199.175.27 60.199.175.28 60.199.175.29 60.199.175.30
60.199.175.31 60.199.175.32 60.199.175.33 60.199.175.34 60.199.175.35 60.199.175.36
60.199.175.37 60.199.175.38 60.199.175.39 60.199.175.40 60.199.175.41 60.199.175.42
60.199.175.43 60.199.175.44 60.199.175.45 60.199.175.46 60.199.175.47 60.199.175.48
60.199.175.49 60.199.175.50 60.199.175.51 60.199.175.52 60.199.175.53 60.199.175.54
60.199.175.55 60.199.175.56 60.199.175.57 60.199.175.58 60.199.175.59 60.199.175.60
60.199.175.61 60.199.175.62 60.199.175.63 60.199.175.64 60.199.175.65 60.199.175.66
60.199.175.67 60.199.175.68 60.199.175.69 60.199.175.70 60.199.175.71 60.199.175.72
60.199.175.73 60.199.175.74 60.199.175.75 60.199.175.76 60.199.175.77 60.199.175.78
60.199.175.79 60.199.175.80 60.199.175.81 60.199.175.82 60.199.175.83 60.199.175.84
60.199.175.85 60.199.175.86 60.199.175.87 60.199.175.88 60.199.175.89 60.199.175.90
60.199.175.91 60.199.175.92 60.199.175.93 60.199.175.94 60.199.175.95 60.199.175.96
60.199.175.97 60.199.175.98 60.199.175.99 60.199.175.100 60.199.175.101 60.199.175.102
60.199.175.103 60.199.175.104 60.199.175.105 60.199.175.106 60.199.175.107 60.199.175.108
60.199.175.109 60.199.175.110 60.199.175.111 60.199.175.112 60.199.175.113 60.199.175.114
60.199.175.115 60.199.175.116 60.199.175.117 60.199.175.118 60.199.175.119 60.199.175.120
60.199.175.121 60.199.175.122 60.199.175.123 60.199.175.124 60.199.175.125 60.199.175.126
60.199.175.127 60.199.175.128 60.199.175.129 60.199.175.130 60.199.175.131 60.199.175.132
60.199.175.133 60.199.175.134 60.199.175.135 60.199.175.136 60.199.175.137 60.199.175.138
60.199.175.139 60.199.175.140 60.199.175.141 60.199.175.142 60.199.175.143 60.199.175.144
60.199.175.145 60.199.175.146 60.199.175.147 60.199.175.148 60.199.175.149 60.199.175.150
60.199.175.151 60.199.175.152 60.199.175.153 60.199.175.154 60.199.175.155 60.199.175.156
60.199.175.157 60.199.175.158 60.199.175.159 60.199.175.160 60.199.175.161 60.199.175.162
60.199.175.163 60.199.175.164 60.199.175.165 60.199.175.166 60.199.175.167 60.199.175.168
60.199.175.169 60.199.175.170 60.199.175.171 60.199.175.172 60.199.175.173 60.199.175.174
60.199.175.175 60.199.175.176 60.199.175.177 60.199.175.178 60.199.175.179 60.199.175.180
60.199.175.181 60.199.175.182 60.199.175.183 60.199.175.184 60.199.175.185 60.199.175.186
60.199.175.187
Top
Taiwan
61.219.131.65 61.219.131.66 61.219.131.67 61.219.131.68 61.219.131.69 61.219.131.70
61.219.131.71 61.219.131.72 61.219.131.73 61.219.131.74 61.219.131.75 61.219.131.76
61.219.131.77 61.219.131.78 61.219.131.79 61.219.131.80 61.219.131.81 61.219.131.82
61.219.131.83 61.219.131.84 61.219.131.85 61.219.131.86 61.219.131.87 61.219.131.88
61.219.131.89 61.219.131.90 61.219.131.91 61.219.131.92 61.219.131.93 61.219.131.94
61.219.131.95 61.219.131.96 61.219.131.97 61.219.131.98 61.219.131.99 61.219.131.100
61.219.131.101 61.219.131.102 61.219.131.103 61.219.131.104 61.219.131.105 61.219.131.106
61.219.131.107 61.219.131.108 61.219.131.109 61.219.131.110 61.219.131.111 61.219.131.112
61.219.131.113 61.219.131.114 61.219.131.115 61.219.131.116 61.219.131.117 61.219.131.118
61.219.131.119 61.219.131.120 61.219.131.121 61.219.131.122 61.219.131.123 61.219.131.193
61.219.131.194 61.219.131.195 61.219.131.196 61.219.131.197 61.219.131.198 61.219.131.199
61.219.131.200 61.219.131.201 61.219.131.202 61.219.131.203 61.219.131.204 61.219.131.205
61.219.131.206 61.219.131.207 61.219.131.208 61.219.131.209 61.219.131.210 61.219.131.211
61.219.131.212 61.219.131.213 61.219.131.214 61.219.131.215 61.219.131.216 61.219.131.217
61.219.131.218 61.219.131.219 61.219.131.220 61.219.131.221 61.219.131.222 61.219.131.223
61.219.131.224 61.219.131.225 61.219.131.226 61.219.131.227 61.219.131.228 61.219.131.229
61.219.131.230 61.219.131.231 61.219.131.232 61.219.131.233 61.219.131.234 61.219.131.235
61.219.131.236 61.219.131.237 61.219.131.238 61.219.131.239 61.219.131.240 61.219.131.241
61.219.131.242 61.219.131.243 61.219.131.244 61.219.131.245 61.219.131.246 61.219.131.247
61.219.131.248 61.219.131.249 61.219.131.250 61.219.131.251
Top
Thailand
1.179.248.4 1.179.248.5 1.179.248.6 1.179.248.7 1.179.248.8 1.179.248.9
1.179.248.10 1.179.248.11 1.179.248.12 1.179.248.13 1.179.248.14 1.179.248.15
1.179.248.16 1.179.248.17 1.179.248.18 1.179.248.19 1.179.248.20 1.179.248.21
1.179.248.22 1.179.248.23 1.179.248.24 1.179.248.25 1.179.248.26 1.179.248.27
1.179.248.28 1.179.248.29 1.179.248.30 1.179.248.31 1.179.248.32 1.179.248.33
1.179.248.34 1.179.248.35 1.179.248.36 1.179.248.37 1.179.248.38 1.179.248.39
1.179.248.40 1.179.248.41 1.179.248.42 1.179.248.43 1.179.248.44 1.179.248.45
1.179.248.46 1.179.248.47 1.179.248.48 1.179.248.49 1.179.248.50 1.179.248.51
1.179.248.52 1.179.248.53 1.179.248.54 1.179.248.55 1.179.248.56 1.179.248.57
1.179.248.58 1.179.248.59 1.179.248.68 1.179.248.69 1.179.248.70 1.179.248.71
1.179.248.72 1.179.248.73 1.179.248.74 1.179.248.75 1.179.248.76 1.179.248.77
1.179.248.78 1.179.248.79 1.179.248.80 1.179.248.81 1.179.248.82 1.179.248.83
1.179.248.84 1.179.248.85 1.179.248.86 1.179.248.87 1.179.248.88 1.179.248.89
1.179.248.90 1.179.248.91 1.179.248.92 1.179.248.93 1.179.248.94 1.179.248.95
1.179.248.96 1.179.248.97 1.179.248.98 1.179.248.99 1.179.248.100 1.179.248.101
1.179.248.102 1.179.248.103 1.179.248.104 1.179.248.105 1.179.248.106 1.179.248.107
1.179.248.108 1.179.248.109 1.179.248.110 1.179.248.111 1.179.248.112 1.179.248.113
1.179.248.114 1.179.248.115 1.179.248.116 1.179.248.117 1.179.248.118 1.179.248.119
1.179.248.120 1.179.248.121 1.179.248.122 1.179.248.123 1.179.248.132 1.179.248.133
1.179.248.134 1.179.248.135 1.179.248.136 1.179.248.137 1.179.248.138 1.179.248.139
1.179.248.140 1.179.248.141 1.179.248.142 1.179.248.143 1.179.248.144 1.179.248.145
1.179.248.146 1.179.248.147 1.179.248.148 1.179.248.149 1.179.248.150 1.179.248.151
1.179.248.152 1.179.248.153 1.179.248.154 1.179.248.155 1.179.248.156 1.179.248.157
1.179.248.158 1.179.248.159 1.179.248.160 1.179.248.161 1.179.248.162 1.179.248.163
1.179.248.164 1.179.248.165 1.179.248.166 1.179.248.167 1.179.248.168 1.179.248.169
1.179.248.170 1.179.248.171 1.179.248.172 1.179.248.173 1.179.248.174 1.179.248.175
1.179.248.176 1.179.248.177 1.179.248.178 1.179.248.179 1.179.248.180 1.179.248.181
1.179.248.182 1.179.248.183 1.179.248.184 1.179.248.185 1.179.248.186 1.179.248.187
1.179.248.196 1.179.248.197 1.179.248.198 1.179.248.199 1.179.248.200 1.179.248.201
1.179.248.202 1.179.248.203 1.179.248.204 1.179.248.205 1.179.248.206 1.179.248.207
1.179.248.208 1.179.248.209 1.179.248.210 1.179.248.211 1.179.248.212 1.179.248.213
1.179.248.214 1.179.248.215 1.179.248.216 1.179.248.217 1.179.248.218 1.179.248.219
1.179.248.220 1.179.248.221 1.179.248.222 1.179.248.223 1.179.248.224 1.179.248.225
1.179.248.226 1.179.248.227 1.179.248.228 1.179.248.229 1.179.248.230 1.179.248.231
1.179.248.232 1.179.248.233 1.179.248.234 1.179.248.235 1.179.248.236 1.179.248.237
1.179.248.238 1.179.248.239 1.179.248.240 1.179.248.241 1.179.248.242 1.179.248.243
1.179.248.244 1.179.248.245 1.179.248.246 1.179.248.247 1.179.248.248 1.179.248.249
1.179.248.250 1.179.248.251
Top
Thailand
1.179.249.4 1.179.249.5 1.179.249.6 1.179.249.7 1.179.249.8 1.179.249.9
1.179.249.10 1.179.249.11 1.179.249.12 1.179.249.13 1.179.249.14 1.179.249.15
1.179.249.16 1.179.249.17 1.179.249.18 1.179.249.19 1.179.249.20 1.179.249.21
1.179.249.22 1.179.249.23 1.179.249.24 1.179.249.25 1.179.249.26 1.179.249.27
1.179.249.28 1.179.249.29 1.179.249.30 1.179.249.31 1.179.249.32 1.179.249.33
1.179.249.34 1.179.249.35 1.179.249.36 1.179.249.37 1.179.249.38 1.179.249.39
1.179.249.40 1.179.249.41 1.179.249.42 1.179.249.43 1.179.249.44 1.179.249.45
1.179.249.46 1.179.249.47 1.179.249.48 1.179.249.49 1.179.249.50 1.179.249.51
1.179.249.52 1.179.249.53 1.179.249.54 1.179.249.55 1.179.249.56 1.179.249.57
1.179.249.58 1.179.249.59 1.179.249.68 1.179.249.69 1.179.249.70 1.179.249.71
1.179.249.72 1.179.249.73 1.179.249.74 1.179.249.75 1.179.249.76 1.179.249.77
1.179.249.78 1.179.249.79 1.179.249.80 1.179.249.81 1.179.249.82 1.179.249.83
1.179.249.84 1.179.249.85 1.179.249.86 1.179.249.87 1.179.249.88 1.179.249.89
1.179.249.90 1.179.249.91 1.179.249.92 1.179.249.93 1.179.249.94 1.179.249.95
1.179.249.96 1.179.249.97 1.179.249.98 1.179.249.99 1.179.249.100 1.179.249.101
1.179.249.102 1.179.249.103 1.179.249.104 1.179.249.105 1.179.249.106 1.179.249.107
1.179.249.108 1.179.249.109 1.179.249.110 1.179.249.111 1.179.249.112 1.179.249.113
1.179.249.114 1.179.249.115 1.179.249.116 1.179.249.117 1.179.249.118 1.179.249.119
1.179.249.120 1.179.249.121 1.179.249.122 1.179.249.123 1.179.249.132 1.179.249.133
1.179.249.134 1.179.249.135 1.179.249.136 1.179.249.137 1.179.249.138 1.179.249.139
1.179.249.140 1.179.249.141 1.179.249.142 1.179.249.143 1.179.249.144 1.179.249.145
1.179.249.146 1.179.249.147 1.179.249.148 1.179.249.149 1.179.249.150 1.179.249.151
1.179.249.152 1.179.249.153 1.179.249.154 1.179.249.155 1.179.249.156 1.179.249.157
1.179.249.158 1.179.249.159 1.179.249.160 1.179.249.161 1.179.249.162 1.179.249.163
1.179.249.164 1.179.249.165 1.179.249.166 1.179.249.167 1.179.249.168 1.179.249.169
1.179.249.170 1.179.249.171 1.179.249.172 1.179.249.173 1.179.249.174 1.179.249.175
1.179.249.176 1.179.249.177 1.179.249.178 1.179.249.179 1.179.249.180 1.179.249.181
1.179.249.182 1.179.249.183 1.179.249.184 1.179.249.185 1.179.249.186 1.179.249.187
1.179.249.196 1.179.249.197 1.179.249.198 1.179.249.199 1.179.249.200 1.179.249.201
1.179.249.202 1.179.249.203 1.179.249.204 1.179.249.205 1.179.249.206 1.179.249.207
1.179.249.208 1.179.249.209 1.179.249.210 1.179.249.211 1.179.249.212 1.179.249.213
1.179.249.214 1.179.249.215 1.179.249.216 1.179.249.217 1.179.249.218 1.179.249.219
1.179.249.220 1.179.249.221 1.179.249.222 1.179.249.223 1.179.249.224 1.179.249.225
1.179.249.226 1.179.249.227 1.179.249.228 1.179.249.229 1.179.249.230 1.179.249.231
1.179.249.232 1.179.249.233 1.179.249.234 1.179.249.235 1.179.249.236 1.179.249.237
1.179.249.238 1.179.249.239 1.179.249.240 1.179.249.241 1.179.249.242 1.179.249.243
1.179.249.244 1.179.249.245 1.179.249.246 1.179.249.247 1.179.249.248 1.179.249.249
1.179.249.250 1.179.249.251
Top
Thailand
1.179.250.4 1.179.250.5 1.179.250.6 1.179.250.7 1.179.250.8 1.179.250.9
1.179.250.10 1.179.250.11 1.179.250.12 1.179.250.13 1.179.250.14 1.179.250.15
1.179.250.16 1.179.250.17 1.179.250.18 1.179.250.19 1.179.250.20 1.179.250.21
1.179.250.22 1.179.250.23 1.179.250.24 1.179.250.25 1.179.250.26 1.179.250.27
1.179.250.28 1.179.250.29 1.179.250.30 1.179.250.31 1.179.250.32 1.179.250.33
1.179.250.34 1.179.250.35 1.179.250.36 1.179.250.37 1.179.250.38 1.179.250.39
1.179.250.40 1.179.250.41 1.179.250.42 1.179.250.43 1.179.250.44 1.179.250.45
1.179.250.46 1.179.250.47 1.179.250.48 1.179.250.49 1.179.250.50 1.179.250.51
1.179.250.52 1.179.250.53 1.179.250.54 1.179.250.55 1.179.250.56 1.179.250.57
1.179.250.58 1.179.250.59 1.179.250.68 1.179.250.69 1.179.250.70 1.179.250.71
1.179.250.72 1.179.250.73 1.179.250.74 1.179.250.75 1.179.250.76 1.179.250.77
1.179.250.78 1.179.250.79 1.179.250.80 1.179.250.81 1.179.250.82 1.179.250.83
1.179.250.84 1.179.250.85 1.179.250.86 1.179.250.87 1.179.250.88 1.179.250.89
1.179.250.90 1.179.250.91 1.179.250.92 1.179.250.93 1.179.250.94 1.179.250.95
1.179.250.96 1.179.250.97 1.179.250.98 1.179.250.99 1.179.250.100 1.179.250.101
1.179.250.102 1.179.250.103 1.179.250.104 1.179.250.105 1.179.250.106 1.179.250.107
1.179.250.108 1.179.250.109 1.179.250.110 1.179.250.111 1.179.250.112 1.179.250.113
1.179.250.114 1.179.250.115 1.179.250.116 1.179.250.117 1.179.250.118 1.179.250.119
1.179.250.120 1.179.250.121 1.179.250.122 1.179.250.123 1.179.250.132 1.179.250.133
1.179.250.134 1.179.250.135 1.179.250.136 1.179.250.137 1.179.250.138 1.179.250.139
1.179.250.140 1.179.250.141 1.179.250.142 1.179.250.143 1.179.250.144 1.179.250.145
1.179.250.146 1.179.250.147 1.179.250.148 1.179.250.149 1.179.250.150 1.179.250.151
1.179.250.152 1.179.250.153 1.179.250.154 1.179.250.155 1.179.250.156 1.179.250.157
1.179.250.158 1.179.250.159 1.179.250.160 1.179.250.161 1.179.250.162 1.179.250.163
1.179.250.164 1.179.250.165 1.179.250.166 1.179.250.167 1.179.250.168 1.179.250.169
1.179.250.170 1.179.250.171 1.179.250.172 1.179.250.173 1.179.250.174 1.179.250.175
1.179.250.176 1.179.250.177 1.179.250.178 1.179.250.179 1.179.250.180 1.179.250.181
1.179.250.182 1.179.250.183 1.179.250.184 1.179.250.185 1.179.250.186 1.179.250.187
1.179.250.196 1.179.250.197 1.179.250.198 1.179.250.199 1.179.250.200 1.179.250.201
1.179.250.202 1.179.250.203 1.179.250.204 1.179.250.205 1.179.250.206 1.179.250.207
1.179.250.208 1.179.250.209 1.179.250.210 1.179.250.211 1.179.250.212 1.179.250.213
1.179.250.214 1.179.250.215 1.179.250.216 1.179.250.217 1.179.250.218 1.179.250.219
1.179.250.220 1.179.250.221 1.179.250.222 1.179.250.223 1.179.250.224 1.179.250.225
1.179.250.226 1.179.250.227 1.179.250.228 1.179.250.229 1.179.250.230 1.179.250.231
1.179.250.232 1.179.250.233 1.179.250.234 1.179.250.235 1.179.250.236 1.179.250.237
1.179.250.238 1.179.250.239 1.179.250.240 1.179.250.241 1.179.250.242 1.179.250.243
1.179.250.244 1.179.250.245 1.179.250.246 1.179.250.247 1.179.250.248 1.179.250.249
1.179.250.250 1.179.250.251
Top
Thailand
1.179.251.4 1.179.251.5 1.179.251.6 1.179.251.7 1.179.251.8 1.179.251.9
1.179.251.10 1.179.251.11 1.179.251.12 1.179.251.13 1.179.251.14 1.179.251.15
1.179.251.16 1.179.251.17 1.179.251.18 1.179.251.19 1.179.251.20 1.179.251.21
1.179.251.22 1.179.251.23 1.179.251.24 1.179.251.25 1.179.251.26 1.179.251.27
1.179.251.28 1.179.251.29 1.179.251.30 1.179.251.31 1.179.251.32 1.179.251.33
1.179.251.34 1.179.251.35 1.179.251.36 1.179.251.37 1.179.251.38 1.179.251.39
1.179.251.40 1.179.251.41 1.179.251.42 1.179.251.43 1.179.251.44 1.179.251.45
1.179.251.46 1.179.251.47 1.179.251.48 1.179.251.49 1.179.251.50 1.179.251.51
1.179.251.52 1.179.251.53 1.179.251.54 1.179.251.55 1.179.251.56 1.179.251.57
1.179.251.58 1.179.251.59 1.179.251.68 1.179.251.69 1.179.251.70 1.179.251.71
1.179.251.72 1.179.251.73 1.179.251.74 1.179.251.75 1.179.251.76 1.179.251.77
1.179.251.78 1.179.251.79 1.179.251.80 1.179.251.81 1.179.251.82 1.179.251.83
1.179.251.84 1.179.251.85 1.179.251.86 1.179.251.87 1.179.251.88 1.179.251.89
1.179.251.90 1.179.251.91 1.179.251.92 1.179.251.93 1.179.251.94 1.179.251.95
1.179.251.96 1.179.251.97 1.179.251.98 1.179.251.99 1.179.251.100 1.179.251.101
1.179.251.102 1.179.251.103 1.179.251.104 1.179.251.105 1.179.251.106 1.179.251.107
1.179.251.108 1.179.251.109 1.179.251.110 1.179.251.111 1.179.251.112 1.179.251.113
1.179.251.114 1.179.251.115 1.179.251.116 1.179.251.117 1.179.251.118 1.179.251.119
1.179.251.120 1.179.251.121 1.179.251.122 1.179.251.123 1.179.251.140 1.179.251.141
1.179.251.142 1.179.251.143 1.179.251.144 1.179.251.145 1.179.251.146 1.179.251.147
1.179.251.148 1.179.251.149 1.179.251.150 1.179.251.151 1.179.251.152 1.179.251.153
1.179.251.154 1.179.251.155 1.179.251.156 1.179.251.157 1.179.251.158 1.179.251.159
1.179.251.160 1.179.251.161 1.179.251.162 1.179.251.163 1.179.251.164 1.179.251.165
1.179.251.166 1.179.251.167 1.179.251.168 1.179.251.169 1.179.251.170 1.179.251.171
1.179.251.172 1.179.251.173 1.179.251.174 1.179.251.175 1.179.251.176 1.179.251.177
1.179.251.178 1.179.251.179 1.179.251.180 1.179.251.181 1.179.251.182 1.179.251.183
1.179.251.184 1.179.251.185 1.179.251.186 1.179.251.187 1.179.251.196 1.179.251.197
1.179.251.198 1.179.251.199 1.179.251.200 1.179.251.201 1.179.251.202 1.179.251.203
1.179.251.204 1.179.251.205 1.179.251.206 1.179.251.207 1.179.251.208 1.179.251.209
1.179.251.210 1.179.251.211 1.179.251.212 1.179.251.213 1.179.251.214 1.179.251.215
1.179.251.216 1.179.251.217 1.179.251.218 1.179.251.219 1.179.251.220 1.179.251.221
1.179.251.222 1.179.251.223 1.179.251.224 1.179.251.225 1.179.251.226 1.179.251.227
1.179.251.228 1.179.251.229 1.179.251.230 1.179.251.231 1.179.251.232 1.179.251.233
1.179.251.234 1.179.251.235 1.179.251.236 1.179.251.237 1.179.251.238 1.179.251.239
1.179.251.240 1.179.251.241 1.179.251.242 1.179.251.243 1.179.251.244 1.179.251.245
1.179.251.246 1.179.251.247 1.179.251.248 1.179.251.249 1.179.251.250 1.179.251.251
Top
Thailand
1.179.252.68 1.179.252.69 1.179.252.70 1.179.252.71 1.179.252.72 1.179.252.73
1.179.252.74 1.179.252.75 1.179.252.76 1.179.252.77 1.179.252.78 1.179.252.79
1.179.252.80 1.179.252.81 1.179.252.82 1.179.252.83 1.179.252.84 1.179.252.85
1.179.252.86 1.179.252.87 1.179.252.88 1.179.252.89 1.179.252.90 1.179.252.91
1.179.252.92 1.179.252.93 1.179.252.94 1.179.252.95 1.179.252.96 1.179.252.97
1.179.252.98 1.179.252.99 1.179.252.100 1.179.252.101 1.179.252.102 1.179.252.103
1.179.252.104 1.179.252.105 1.179.252.106 1.179.252.107 1.179.252.108 1.179.252.109
1.179.252.110 1.179.252.111 1.179.252.112 1.179.252.113 1.179.252.114 1.179.252.115
1.179.252.116 1.179.252.117 1.179.252.118 1.179.252.119 1.179.252.120 1.179.252.121
1.179.252.122 1.179.252.123 1.179.252.132 1.179.252.133 1.179.252.134 1.179.252.135
1.179.252.136 1.179.252.137 1.179.252.138 1.179.252.139 1.179.252.140 1.179.252.141
1.179.252.142 1.179.252.143 1.179.252.144 1.179.252.145 1.179.252.146 1.179.252.147
1.179.252.148 1.179.252.149 1.179.252.150 1.179.252.151 1.179.252.152 1.179.252.153
1.179.252.154 1.179.252.155 1.179.252.156 1.179.252.157 1.179.252.158 1.179.252.159
1.179.252.160 1.179.252.161 1.179.252.162 1.179.252.163 1.179.252.164 1.179.252.165
1.179.252.166 1.179.252.167 1.179.252.168 1.179.252.169 1.179.252.170 1.179.252.171
1.179.252.172 1.179.252.173 1.179.252.174 1.179.252.175 1.179.252.176 1.179.252.177
1.179.252.178 1.179.252.179 1.179.252.180 1.179.252.181 1.179.252.182 1.179.252.183
1.179.252.184 1.179.252.185 1.179.252.186 1.179.252.187 1.179.252.196 1.179.252.197
1.179.252.198 1.179.252.199 1.179.252.200 1.179.252.201 1.179.252.202 1.179.252.203
1.179.252.204 1.179.252.205 1.179.252.206 1.179.252.207 1.179.252.208 1.179.252.209
1.179.252.210 1.179.252.211 1.179.252.212 1.179.252.213 1.179.252.214 1.179.252.215
1.179.252.216 1.179.252.217 1.179.252.218 1.179.252.219 1.179.252.220 1.179.252.221
1.179.252.222 1.179.252.223 1.179.252.224 1.179.252.225 1.179.252.226 1.179.252.227
1.179.252.228 1.179.252.229 1.179.252.230 1.179.252.231 1.179.252.232 1.179.252.233
1.179.252.234 1.179.252.235 1.179.252.236 1.179.252.237 1.179.252.238 1.179.252.239
1.179.252.240 1.179.252.241 1.179.252.242 1.179.252.243 1.179.252.244 1.179.252.245
1.179.252.246 1.179.252.247 1.179.252.248 1.179.252.249 1.179.252.250 1.179.252.251
Top
Thailand
1.179.253.4 1.179.253.5 1.179.253.6 1.179.253.7 1.179.253.8 1.179.253.9
1.179.253.10 1.179.253.11 1.179.253.12 1.179.253.13 1.179.253.14 1.179.253.15
1.179.253.16 1.179.253.17 1.179.253.18 1.179.253.19 1.179.253.20 1.179.253.21
1.179.253.22 1.179.253.23 1.179.253.24 1.179.253.25 1.179.253.26 1.179.253.27
1.179.253.28 1.179.253.29 1.179.253.30 1.179.253.31 1.179.253.32 1.179.253.33
1.179.253.34 1.179.253.35 1.179.253.36 1.179.253.37 1.179.253.38 1.179.253.39
1.179.253.40 1.179.253.41 1.179.253.42 1.179.253.43 1.179.253.44 1.179.253.45
1.179.253.46 1.179.253.47 1.179.253.48 1.179.253.49 1.179.253.50 1.179.253.51
1.179.253.52 1.179.253.53 1.179.253.54 1.179.253.55 1.179.253.56 1.179.253.57
1.179.253.58 1.179.253.59 1.179.253.76 1.179.253.77 1.179.253.78 1.179.253.79
1.179.253.80 1.179.253.81 1.179.253.82 1.179.253.83 1.179.253.84 1.179.253.85
1.179.253.86 1.179.253.87 1.179.253.88 1.179.253.89 1.179.253.90 1.179.253.91
1.179.253.92 1.179.253.93 1.179.253.94 1.179.253.95 1.179.253.96 1.179.253.97
1.179.253.98 1.179.253.99 1.179.253.100 1.179.253.101 1.179.253.102 1.179.253.103
1.179.253.104 1.179.253.105 1.179.253.106 1.179.253.107 1.179.253.108 1.179.253.109
1.179.253.110 1.179.253.111 1.179.253.112 1.179.253.113 1.179.253.114 1.179.253.115
1.179.253.116 1.179.253.117 1.179.253.118 1.179.253.119 1.179.253.120 1.179.253.121
1.179.253.122 1.179.253.123
Top
Thailand
118.174.25.4 118.174.25.5 118.174.25.6 118.174.25.7 118.174.25.8 118.174.25.9
118.174.25.10 118.174.25.11 118.174.25.12 118.174.25.13 118.174.25.14 118.174.25.15
118.174.25.16 118.174.25.17 118.174.25.18 118.174.25.19 118.174.25.20 118.174.25.21
118.174.25.22 118.174.25.23 118.174.25.24 118.174.25.25 118.174.25.26 118.174.25.27
118.174.25.28 118.174.25.29 118.174.25.30 118.174.25.31 118.174.25.32 118.174.25.33
118.174.25.34 118.174.25.35 118.174.25.36 118.174.25.37 118.174.25.38 118.174.25.39
118.174.25.40 118.174.25.41 118.174.25.42 118.174.25.43 118.174.25.44 118.174.25.45
118.174.25.46 118.174.25.47 118.174.25.48 118.174.25.49 118.174.25.50 118.174.25.51
118.174.25.52 118.174.25.53 118.174.25.54 118.174.25.55 118.174.25.56 118.174.25.57
118.174.25.58 118.174.25.59 118.174.25.68 118.174.25.69 118.174.25.70 118.174.25.71
118.174.25.72 118.174.25.73 118.174.25.74 118.174.25.75 118.174.25.76 118.174.25.77
118.174.25.78 118.174.25.79 118.174.25.80 118.174.25.81 118.174.25.82 118.174.25.83
118.174.25.84 118.174.25.85 118.174.25.86 118.174.25.87 118.174.25.88 118.174.25.89
118.174.25.90 118.174.25.91 118.174.25.92 118.174.25.93 118.174.25.94 118.174.25.95
118.174.25.96 118.174.25.97 118.174.25.98 118.174.25.99 118.174.25.100 118.174.25.101
118.174.25.102 118.174.25.103 118.174.25.104 118.174.25.105 118.174.25.106 118.174.25.107
118.174.25.108 118.174.25.109 118.174.25.110 118.174.25.111 118.174.25.112 118.174.25.113
118.174.25.114 118.174.25.115 118.174.25.116 118.174.25.117 118.174.25.118 118.174.25.119
118.174.25.120 118.174.25.121 118.174.25.122 118.174.25.123 118.174.25.132 118.174.25.133
118.174.25.134 118.174.25.135 118.174.25.136 118.174.25.137 118.174.25.138 118.174.25.139
118.174.25.140 118.174.25.141 118.174.25.142 118.174.25.143 118.174.25.144 118.174.25.145
118.174.25.146 118.174.25.147 118.174.25.148 118.174.25.149 118.174.25.150 118.174.25.151
118.174.25.152 118.174.25.153 118.174.25.154 118.174.25.155 118.174.25.156 118.174.25.157
118.174.25.158 118.174.25.159 118.174.25.160 118.174.25.161 118.174.25.162 118.174.25.163
118.174.25.164 118.174.25.165 118.174.25.166 118.174.25.167 118.174.25.168 118.174.25.169
118.174.25.170 118.174.25.171 118.174.25.172 118.174.25.173 118.174.25.174 118.174.25.175
118.174.25.176 118.174.25.177 118.174.25.178 118.174.25.179 118.174.25.180 118.174.25.181
118.174.25.182 118.174.25.183 118.174.25.184 118.174.25.185 118.174.25.186 118.174.25.187
118.174.25.196 118.174.25.197 118.174.25.198 118.174.25.199 118.174.25.200 118.174.25.201
118.174.25.202 118.174.25.203 118.174.25.204 118.174.25.205 118.174.25.206 118.174.25.207
118.174.25.208 118.174.25.209 118.174.25.210 118.174.25.211 118.174.25.212 118.174.25.213
118.174.25.214 118.174.25.215 118.174.25.216 118.174.25.217 118.174.25.218 118.174.25.219
118.174.25.220 118.174.25.221 118.174.25.222 118.174.25.223 118.174.25.224 118.174.25.225
118.174.25.226 118.174.25.227 118.174.25.228 118.174.25.229 118.174.25.230 118.174.25.231
118.174.25.232 118.174.25.233 118.174.25.234 118.174.25.235 118.174.25.236 118.174.25.237
118.174.25.238 118.174.25.239 118.174.25.240 118.174.25.241 118.174.25.242 118.174.25.243
118.174.25.244 118.174.25.245 118.174.25.246 118.174.25.247 118.174.25.248 118.174.25.249
118.174.25.250 118.174.25.251
Top

IP 地址来源:http://www.kookle.co.nr

LayoutInflater的作用是将layout的xml布局文件实例化为View类对象。
获取LayoutInflater的方法有如下三种

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
LayoutInflater
inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View
layout = inflater.inflate(R.layout.main, null);

LayoutInflater
inflater = LayoutInflater.from(context); (该方法实质就是第一种方法,可参考源代码)

View
layout = inflater.inflate(R.layout.main, null);



LayoutInflater
inflater = getLayoutInflater();(在Activity中可以使用,实际上是View子类下window的一个函数)

View
layout = inflater.inflate(R.layout.main, null);

安装

  • 在线安装
1
2
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
brew install uncrustify
  • 下载安装

    • 下载XEP-*.pkgPrjEnv.pfg
    • 安装XEP
    • PrjEnv.cfg拷贝到项目的根目录(.xcodeproj文件所在的目录)
    • 配置FULLUSERNAME和VERSION就可以生成@author和@since标签
  • 修改代码格式化配置

如果想修改格式化的形式,修改 uncrustify.cfg

~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XEP.xcplugin/Contents/Resources

  • 卸载
1
2
3
cd ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins
rm -rf XEP.xcplugin
brew uninstall uncrustify
  • 快捷键
  1. 格式化:control+shift+F(有效对象为代码、文件、项目目录)
  2. 生成注释:control+shift+J,以光标所在当前行往上查找可识别对象并生成对就注释(有原来有以双斜杠开头的注释会自动加到注释的描述中去).
  3. 整个文件生成注释:control+command+shift+J,同2功能,查找当前打开的文档,给所有对象生成的注释
  4. 复制一行:control+option+up/down(光标所在行)

  • UIDatePicker,用来选择日期的控件,也可作为倒计时控件。继承了UICtroller,可在Interface Builder中为UIDatePicker的Valre Changed事件绑定IBAction事件处理方法,也可在代码中为该控件绑定事件处理方法。
  • 常用属性
    1. Mode

      Date:控件仅显示日期,不显示时间。

      Time:控件仅显示时间,不显示日期。

      Date and Time:控件同时显示日期和时间。

      Count Down Timer:控件仅显示为倒计时器。

    2. Locale

      设置UIDatePicker的国际化Locale,通常不需要手动设置,与手机的运行配置一致。

    3. Interval

      仅当该UIDatePicker控件设置采用Time、Date and Time和Count Down Timer这三种模式时有效,该属性设置UIDatePicker控件上两个时间的间隔。

    4. Constraints

      该属性设置最小时间和最大时间,如果设置了该属性值,用户无法通过该UIDatePicker控件选择超过该范围的日期和时间

    5. Timer

      仅当该UIDatePicker控件采用Count Down Timer模式时有效,该属性设置该控件作为倒计时控件时剩下的时间。

  • 示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-(void)viewDidLoad
{
[super viewDidLoad];
}
-(IBAction)clicked:(id)sender{
NSDate* seleced = [self.dataPicker date];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy年MM月dd日 HH:mm+0800"];
NSString* destDateString = [dateFormatter stringFromDate:selected];
NSString *message = [NSString stringWithFormat:@"你选择的日期和时间是:%@",destDateString];
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"日期和时间"
message:message
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
}

  • UITableView实质是一个列表(单列表格)
    • UITable继承了UIScrollView,主要封装了UITabelViewCell单元格控件。所以,UITabelView默认是可以对单元格进行滚动,默认情况下,所有的UITabelViewController实例被自动设为UIScrollView委托。
    • 设置属性
      1. Style
        • Plain:指定该表格使用最普通的风格。
        • Grouped:指定该表格使用分组风格。
      2. Separator
        • 分割条样式:可选择Single Line(单线)和Single Line Etched(被蚀刻的单线)
        • 分隔条颜色
      3. Selection
        • No Selection:不允许选中
        • Single Selection:只允许单选
        • 允许多选
      4. Editing
        • No Selection During Editing:编辑状态时不允许选中
        • Single Selection During Editing:编辑状态时只允许单选
        • Multiple Selection During Editing:编辑状态时允许多选
    • 属性和方法
      • style:只读属性,用于返回该表格的样式,可以返回UITabelViewStylePlain(普通)和UITabelViewStyleGrounped(分组)两个样式。
      • rowHeight:该属性用于返回或设置表格的行高,通常来说,建议实现表格对应的委托对象的tabelView:heightForRowAtIndexPath:方法来设置行高。
      • separatorStyle:该属性用于返回或设置表格的分割线样式。它支持UITabelViewCell SeparatorStyleNone(无分隔线)、UITabelViewCellSeparatorStyleSingleLine(单线分隔条)和UITableViewCellSeparatorStyleSingleLineEtched(被蚀刻的单线分隔条)这三个枚举值。
      • separatorColor:该属性用于设置分隔条的颜色。
      • backgroundView:该属性用于返回或设置表格的背景控件,它可以设置一个任意的UIView控件,该控件自动缩放到匹配该表格。
      • tabelHeaderView:该属性可设置或返回该表格的页眉控件。
      • tabelFooterView:该属性可设置或返回该表格的页脚控件。
      • numberOfRowsInSection:该方法返回指定分区包含的行数。
      • numberOfSections:该方法返回表格所包含的分区数。
    • 设置数据UITableViewDataSource对象
      • tabelView:cellForRowAtIndexPath:必需方法,该方法返回的UITabelViewCell对象,将作为指定IndexPath对应表格行的控件。
      • tabelView:numberOfRowsInSection:必需方法,该方法返回的NSInteger值,决定指定分区包含的表格行数量。
      • numberOfSectionInTableView:可选方法,该方法返回的NSInteger值决定该表格所包含的分区数量。如果不实现该方法,该表格默认只包含一个分区。
  • UITableViewCell三个可配置的属性
    • textLabel:该属性是一个UILabel控件,代表UITableViewCell显示的标题。
    • detailTextLabel:该属性是一个UILabel控件,代表该UITableViewCell显示的详细内容。
    • image:该属性是一个UIImageView对象,代表UITabelViewCell坐标的图标。
  • UITableViewCell4种不同的风格
    • UITableViewCellStyleSubtitle:detailTextLabel字体略小,显示在textLabel的下方。
    • UITableViewCellStyleDefault:detailTextLabel,只显示textLabel。
    • UITableViewCellStyleValue1:deltailTextLabel以淡蓝色显示,显示在表格的右边。
    • UITableViewCellStyleValue2:deltailTextLabel以淡蓝色、小字体显示,detailTextLabel以大字体显示在表格右边,不显示image控件。
  • UITableView访问表格控件的表格行和分区的方法
    • -cellForRowAtIndexPath:返回该表格中指定NSIndexPath对应的表格栏
    • -indexPathForCell:获取该表格中指定表格行对应的NSIndexPath
    • -indexPathForRowAtPoint:返回该表格中指定点所在的NSIndexPath
    • -indexPathForRowInRect:返回该表格中指定区域内所有NSIndexPath组成的数组
    • -visibleCells:返回该表格中所有可见区域内的表格行组成的数组
    • -indexPathsForVisibleRows:返回该表格中多有可见区域内的表格行对应的NSIndexPath组成的数组
  • UITableView控制表格控件滚动的方法
    • scrollToRowAtIndexPath:atScrollPosition:animated:控件该表格滚动到指定的NSIndexPath对应的表格行的顶端、中间或下方。
    • -scrollToNearestSelectedRowAtScrollPosition:animated:控件该表格滚动到选中表格行的顶端、中间或下方。
  • UITableView配置表格被选中状态的属性
    • allowsSelection:该属性控制表格是否被运行选中
    • allowsMultipleSelection:该属性控制表格是否被允许多选
    • allowsSelectionDuringEditing:该属性控制该表格出于编辑状态时是否允许被选中。
    • allowsMultipleSelectionDuringEdting:该属性控制控制该表格处于编辑状态时是否允许多选。
  • UITableview操作表格被选中的方法
    • -indexPathForSelectedRow:获取选中表格行对应的NSIndexPath
    • -indexPathsForSelecedRows:获取所有被选中表格行对应的NSIndexPath组成的数组
    • -selectRowAtIndexPath:animated:scrollPosition:控制该表格选中指定的NSIndexPath对应的表格行,最后一个参数控制是否滚动到被选中行的顶端、中间和底部
    • -deselectRowAtIndexPath:animated:取消选中该表格中指定NSIndexPath对应的表格行。
  • 要响应表格行的选中事件,需要委托实现UITableViewDelegate,其中定义了如下方法:
    • -tableView:willSelectRowAtIndexPath:当用户将要选中表格中某行时激发的方法
    • -tableView:didSelectRowAtIndexPath:当用户完成选中某行时激发的方法
    • -tableView:willDeselectRowAtIndexPath:当用户将要取消选中某行激发的方法
    • -tableView:didDeselectRowAtIndexPath:当用户取消选中某行时激发的方法

Android的体系架构鼓励组建重用,允许开发者发布共享Activity、Service并且访问其他应用程序的数据,还可以根据开发者制定的安全限制进行管理。

剖析Android体系架构

第一个列表将向开发者展示应用服务,这些服务是Android的架构基石。你也可以称它为所有的Android应用程序的支柱框架,为所有开发应用提供支持。
- Activity Manager:控制界面的生命周期,包括管理活动(Activity)栈
- Views:Views为应用程序构建用户界面。
- Notification Manager:提供一贯的非侵入式的机制来通知用户。
- Content Providers:让开发者在不同应用之间共享数据。
- Resource Manager:支持非代码资源,如字符串和图形被外部化。

Android库

Android也提供了大量的API开发应用程序。

  • android.util:核心工具包种包含底层类,字符串格式化和XML解析工具、底层类
  • android.os:操作系统包提供了访问基本的操作系统服务,如消息传递、进程通信、时钟功能和调试。
  • android.graphics:图形API提供了支持画布、颜色和回执图元的低级别的图形类并且支持绘制画布。
  • android.text:用于显示和歇息文本的处理工具
  • android.database:在数据库处理游标时提供底层类支持
  • android.content:content API管理数据访问,提供服务来管理资源、内容提供者(content provider)和包
  • android.view:视图是核心的用户接口类,所有用户界面元素使用的是一系列视图,以构成用户交互的组件
  • android.widget:内置在View包内,小部件类是”这里是我们前面创建的“用户界面元素,可以在自己的应用程序中使用
  • com.google.android.maps:高级API,它提供了访问本地地图控件,可以在自己的应用程序中使用,包括MapView的控制、用于标注和控制您的前途地图的叠加以及MapController类
  • android.app:一个高层次的包,允许访问应用程序模型。该应用程序包括Activity和Service的API等是Android应用程序的基础
  • android.provider:方便开发者访问标准的内容提供者(比如联系人数据库),provider包提供类给开发者访问标准的数据库
  • android.telephony:telephony API让开发者直接接触电话底层,开发者可以打电话、接电话、显示通话记录、通话状态和短消息
  • android.webkit:WebKit的软件包功能的API与基于Web的内容的工作,其中包括一个WebView的控件在您的活动中嵌入浏览器和cookie管理器

除了在Android API,Android栈还包括一组的C/C++库,可通过应用程序框架发布出来。

  • OpenGl:用于支持基于OpenGL ES1.0 API、3D图像库
  • FreeType:支持位图和矢量字体渲染
  • SGL:用于提供2D图形和矢量字体渲染
  • ibc:标准C库,为基于Linux的嵌入式设备进行了优化
  • SQLite:用于存储应用程序数据的轻量级的关系数据库引擎
  • SSL:支持使用安全套接字层加密协议进行安全互联网通信

高级Android开发库

  • android.location:基于位置的服务的API,使应用程序访问设备的当前物理位置,基于位置的服务提供通的访问使用任何位置固定的硬件或技术设备上可用的位置信息。
  • android.media:没提API提供了用于播放音频和视频没提文件,包括流媒体和录制的支持。
  • android.opengl:Android提供使用的OpenGLass ES API,你可以用它来创建动态3D用户界面为你的应用程序的强大的3D渲染引擎
  • android.hardware:如果有可能,硬件API公开的传感器硬件,包括摄像头、加速计和指南针传感器
  • android.bluetooth,android.net.wifi,android.telephony:Android也提供了硬件平台,包括蓝牙、Wi-Fi和电话硬件的低级别的访问