接入门篇-1
3.数据类型和变量
3.5 元组
旧式字符串格式化中参数要用元组; 在字典中当作键值; 数据库的返回值……
输入
#tuple类型 与list类型类似,但是不支持修改
tuple1 = (1,3,['a','b'],(1,2))
tuple1[2]
tuple1[:2]
# type(tuple1[2])
# type(tuple1[3])
(1, 3)
输出
输入
#元组的操作
# tuple1.index(1)
tuple1.count(2)
#list可以转成元组
# list1
tuple(list1)
list(tuple1) #list跟tuple可以互相转换
# type(list1)
[1, 3, ['a', 'b'], (1, 2)]
输出
3.6 字典
字典是没有顺序的
输入
#Python 使用 {} 或者 dict() 来创建一个空的字典:
dict1={}
# dict2=dict()
type(dict1)
dict1["one"]=4
dict1["two"]='F'
dict1
dict3 = {'one':4,'two':'F'}
dict3
# dict3
# len(dict1)
# dict3.get('two')
dict3['two']
'F'
输出
输入
#可以使用元组作为键值。键是不可变的数据类型,键值可以是可变类型
connections = {}
connections[('New York', 'Seattle')] = 100
connections[('Austin', 'New York')] = 200
connections[('New York', 'Austin')] = 400
connections.get(('New York', 'Seattle'))
connections.keys()
connections.values()
connections.items() #返回结果是个列表(list)
[(('New York', 'Austin'), 400),
(('New York', 'Seattle'), 100),
(('Austin', 'New York'), 200)]
输出
3.7 可变类型和不可变类型
可变数据类型 list, dictionary, set, numpy array, user defined objects
不可变数据类型 integer, float, long, complex, string, tuple, frozenset
4 循环、判断
4.1 for 循环
输入
# list_t = [1,2,3,4]
# for i in list_t:
# print i+1
for x, y in [(1, 1), (2, 4), (3, 9)]:
print(x*x, y+1)
(1, 2)
(4, 5)
(9, 10)
输出
输入
# 迭代(for 循环)
#导入Iterable(可迭代)类型。collections模块里有很多的集合类型。
from collections import Iterable
isinstance('abc', int) # str是否可迭代
# for i in 'abc':
# print i.upper()
# isinstance([1,2,3], Iterable) # list是否可迭代
# isinstance(234, Iterable) #int类型是否可迭代
False
输出
输入
#列表生成式
# for i in list_t:
# print i*i
[i*i for i in list_t]
[m + n for m in 'ABC' for n in 'XYZ'] #支持多变量
[s.upper() for s in 'abc']
['A', 'B', 'C']
输出
输入
#生成器
#在需要的时候再生成
t = (i*i for i in list_t) #方括号变成圆括号即可
type(t)
for i in t:
print i
1
4
9
16
输出
4.2 条件判断
if : #注意冒号
#注意缩进
elif :
elif :
else:
输入
birth = input('birth: ') #input可以接收用户输入
if birth
print('00前')
else:
print('00后')
KeyboardInterruptTraceback (most recent call last) in ()----> 1 birth = input('birth: ') #input可以接收用户输入 2 if birth (prompt) 162 self._sys_eval_input = builtin_mod.input 163 builtin_mod.raw_input = self.raw_input--> 164 builtin_mod.input = lambda prompt='': eval(self.raw_input(prompt)) 165 self._save_getpass = getpass.getpass 166 getpass.getpass = self.getpass/usr/install/anaconda2/lib/python2.7/site-packages/ipykernel/kernelbase.pyc in raw_input(self, prompt) 703 self._parent_ident, 704 self._parent_header,--> 705 password=False, 706 ) 707 /usr/install/anaconda2/lib/python2.7/site-packages/ipykernel/kernelbase.pyc in _input_request(self, prompt, ident, parent, password) 733 except KeyboardInterrupt: 734 # re-raise KeyboardInterrupt, to truncate traceback--> 735 raise KeyboardInterrupt 736 else: 737 breakKeyboardInterrupt:
输出
输入
# [m + n for m in 'AbC' for n in 'XYZ' if m.islower()]
# range?
# T = (i for i in range(1,100) if i%2 ==1)
# for g in T:
# print g
# range(1,100)
for g in range(1,100):
if g%2==1:
print g
1
3
...
99
输出
4.3 while循环
输入
#另一种循环方式
ai = 0
l1 = 'abcdef'
while ai
if ai == 1:
pass #只是为了代码不报错的占位符号,实际什么都不执行
elif ai == 3:
ai = ai+1
continue #跳过这一次循环
elif ai == 5:
break #跳出循环
print l1[ai]
ai = ai+1
# while ai
# ai = ai+1d
a
b
c
e
输出
下节我们将从函数开始学习,敬请期待!
领取专属 10元无门槛券
私享最新 技术干货