基本数据类型(代码基于Python 3)
和大多数编程语言一样,拥有基本数据类型:整型,浮点型,布尔型和字符串等
数字:整型与浮点型的使用与其他语言类似
x = 3
print(type(x))
print (x)
y = 2.5
print(type(y))
print(y, y + 1, y * 2, y ** 2)
布尔型:实现所有的布尔逻辑用的是英语而不是操作符(&&,||)
t = True
f = False
print(type(t))
print(t and f)
print(t or f)
print(not t)
print(t != f)
字符串:Python对于字符串的支持很棒!
# 字符串
h = 'hello'
w = 'world'
print(h)
print(w)
print(len(h)) # String length 返回字符串长度
hw = h + ' ' + w # 字符串拼接
print(hw)
hw12 = '%s %s %d' % (h, w, 12)
print(hw12)
拼接, 输出多个 都OK
字符串还有一些有用的方法,比如:
s = 'hello'
print(s.capitalize()) #首字母大写
print(s.upper()) #全部大写
print(s.rjust(7))
print(s.center(7))
print(s.replace('l','(ell)')) # 替换所有字母l
print(' world')
print(' world'.strip()) # 删除前面空格,顶前
Containers(译为:容器):list, dictionary,set,tuple
list
列表是python中的数组,长度可变且能包含不同类型元素
# 列表list
xs = [3, 1, 2] #创建列表
print(xs, xs[2], xs[0]) # index 索引从0开始
print(xs[-1]) # 倒数第一个
xs[2] = 'foo' # 替换list中第三个元素
print(xs)
xs.append('bar') # 最后面加元素
print(xs)
x = xs.pop() # 删除最后一个元素
print(x, xs)
切片Slicing:为了一次性获取列表中的元素,python提供了一种简洁的语法——切片slicing
# 切片slicing
nums =[0, 1, 2, 3, 4]
print(nums)
print(nums[2:4]) # 取索引2,3 即第3个和第4个,最后一个取不到
print(nums[2:]) # 从索引2 即第3个取到最后
print(nums[:2]) # 从头取到索引1,即第2个,取不到索引2
print(nums[:]) # 取所有
print(nums[:-1]) # 从头取除了最后一个
nums[2:4] = [8, 9] # 替换
print(nums)
在Numpy库中,还会再次接触到切片
循环loops:我们可以遍历列表中的每一个元素
# 循环loops,遍历每一个元素
animals = ['cat', 'dog', 'monkey']
for animal in animals:
print(animal)
若想访问每个元素的指针,使用内置的enumerate函数
# 循环,访问每个元素的指针,使用内置的enumerate函数
animals = ['cat', 'dog', 'monkey']
for idx, animal in enumerate(animals):
print('#%d: %s' % (idx, animal))
列表推导List comprehensions:我们想把一种数据类型转换为另一种。
例子:把列表中每个元素将其平方
nums = [0, 1, 2, 3, 4]
squares = []
for x in nums:
squares.append(x ** 2)
print(squares)
使用列表推导,代码会简化很多:
# List comprehensions
nums = [0, 1, 2, 3, 4]
squares = [x ** 2 for x in nums]
print(squares)
列表推导还可以包含条件:
# 包含条件的List comprehensions
nums = [0, 1, 2, 3, 4]
even_squares = [x ** 2 for x in nums if x % 2 == 0]
print(even_squares)
字典dictionary
字典用来储存对(键,值):
# 字典
d = {'cat': 'cute', 'dog': 'furry'} # 创建一个字典
print(d['cat']) # 得到键cat的值cute
print('cat' in d) # 判断键cat是否在字典d中
d['fish'] = 'wet'
print(d['fish'])
print(d.get('monkey', 'N/A')) # 得到默认值,若没有则N/A
print(d.get('fish', 'N/A'))
del d['fish'] # 删除
print(d.get('fish', 'N/A'))
循环loops:在字典中,用键来迭代更加容易
# 循环loops:在字典中,用键来迭代更加容易
d = {'person': 2, 'cat': 4, 'spider': 8}
for animal in d:
print(animal)
legs = d[animal]
print('A %s has %d legs' % (animal, legs))
若访问键和对应的值使用iteritems方法(python2),python3中更改为items方法:
# 访问键和对应的值使用iteritems方法(pyhon2),python3中更改为items方法:
d = {'person':2, 'cat': 4, 'spider': 8}
#for animal, legs in d.iteritems():
for animal, legs in d.items():
print('A %s has %d legs' %(animal, legs))
字典推导Dictionary comprehensions:和列表推导类似,但是允许你方便地构建字典
nums = [0, 1, 2, 3, 4]
even_num_to_square = {x: x ** 2 for x in nums if x % 2 == 0}
print(even_num_to_square)
集合Sets
集合是独立不同个体的无序集合。
# 集合sets
animals = {'cat', 'dog'}
print('cat' in animals)
print('fish' in animals)
animals.add('fish')
print('fish' in animals)
print(len(animals))
animals.add('cat')
print(len(animals))
animals.remove('cat')
print(len(animals))
循环loops:在集合中循环的语法和列表一样,但集合是无序的所以访问集合元素的时候,不能做关于顺序的假设。
animals = {'cat', 'dog', 'fish'}
for idx, animal in enumerate(animals):
print('%#d: %s' %(idx + 1 , animal))
集合推导Set comprehension :和字典一样,可以很方便的构建集合
# 集合推导
from math import sqrt
nums = {int(sqrt(x)) for x in range(30)}
print(nums)
元组Tuples
元组是一个值的所有序列表(不可改变)。和列表的不同:元组可以作为字典中的键和集合的元素,列表不行。
# 元组()
d = {(x, x + 1): x for x in range(10)}
print(d)
t = (5, 6)
print(type(t))
print(d[t])
print(d[(1,2)])
函数Function
# def 来定义函数
def sign(x):
if x > 0:
return 'positive'
elif x < 0:
return 'negative'
else:
return 'zero'
for x in [-1, 0, 1]:
print(sign(x))
常用可选参数来定义函数
# def 可选参数来定义函数
def hello(name, loud=False):
if loud:
print('HELLO, %s' % (name.upper()))
else:
print('Hello, %s!' % (name))
hello('Bob')
hello('Fred', loud=True)
类Class
# 类 Class
class Greeter(object):
# Constructor
def __init__(self, name):
self.name = name # create an instance variable
# Instance method
def greet(self, loud=False):
if loud:
print('HELLO, %s' % self.name.upper())
else:
print('hello, %s' % self.name)
g = Greeter('Fred') # construct an instance of the Greeter class
g.greet() # call an instance method print "hello, Fred"
g.greet(loud=True) # print "HELLO, FRED"