一,Python创建list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:
>>> L = ['Michael', 100, True]
一个元素也没有的list,就是空list:
>>> empty_list = []
二,Python按照索引访问list(和数组一样
)
>>> L = ['Adam', 'Lisa', 'Bart']
>>> print L[0]
Adam
使用索引时,千万注意不要越界。
三,Python之倒序访问list
Bart同学是最后一名,俗称倒数第一
,所以,我们可以用 -1 这个索引来表示最后一个元素:
>>> print L[-1]
Bart
L[-4] 报错了,因为倒数第四不存在,一共只有3个元素。
使用倒序索引时,也要注意不要越界。
四,Python之添加新元素
- append()总是把新的元素添加到 list 的尾部。
>>> L = ['Adam', 'Lisa', 'Bart']
>>> L.append('Paul')
>>> print L
['Adam', 'Lisa', 'Bart', 'Paul']
- insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素:
>>> L = ['Adam', 'Lisa', 'Bart']
>>> L.insert(0, 'Paul')
>>> print L
['Paul', 'Adam', 'Lisa', 'Bart']
五,Python从list删除元素
- pop()方法总是删掉list的最后一个元素,并且它还返回这个元素(
pop(index)也可以定位删除
)
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> L.pop()
'Paul'
>>> print L
['Adam', 'Lisa', 'Bart']
六,Python中替换元素
假设现在班里仍然是3名同学:
>>> L = ['Adam', 'Lisa', 'Bart']
现在,Bart同学要转学走了,碰巧来了一个Paul同学,要更新班级成员名单,我们可以直接用Paul把Bart给替换掉:
>>> L[2] = 'Paul' #或者L[-1]
>>> print L
L = ['Adam', 'Lisa', 'Paul']
七,Python之创建tuple
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了
。
同样是表示班里同学的名称,用tuple表示如下:
>>> t = ('Adam', 'Lisa', 'Bart')
获取 tuple 元素的方式和 list 是一模一样的,我们可以正常使用 t[0],t[-1]
等索引方式访问元素,但是不能赋值成别的元素
八,Python之创建单元素tuple
tuple和list一样,可以包含 0 个、1个和任意多个元素。
包含 0 个元素的 tuple,也就是空tuple,直接用 ()表示:
>>> t = ()
>>> print t
()
创建包含1个元素的 tuple 呢?来试试:
>>> t = (1)
>>> print t
1
好像哪里不对!t 不是 tuple ,而是整数1。为什么呢?
因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”
,这样就避免了歧义:
>>> t = (1,)
>>> print t
(1,)
九,Python之“可变”的tuple
前面我们看到了tuple一旦创建就不能修改。现在,我们来看一个“可变”的tuple:
>>> t = ('a', 'b', ['A', 'B'])
>>> L = t[2]
>>> L[0] = 'X'
>>> L[1] = 'Y'
>>> print t
('a', 'b', ['X', 'Y'])
所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变
。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
十,Python之if语句
age = 20
if age >= 18:
print 'your age is', age
print 'adult'
print 'END'
注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块
,上面的3,4行 print 语句就构成一个代码块(但不包括第5行的print)。如果 if 语句判断为 True,就会执行这个代码块。
缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格
,否则很容易造成因为缩进引起的语法错误。
注意: if 语句后接表达式,然后用:表示代码块开始
。
如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车:
>>> age = 20
>>> if age >= 18:
... print 'your age is', age
... print 'adult'
...
your age is 20
adult
十一,Python之 if-else
if age >= 18:
print 'adult'
else:
print 'teenager'
注意: else 后面有个“:”
。
十二,Python之 if-elif-else
if age >= 18:
print 'adult'
elif age >= 6:
print 'teenager'
elif age >= 3:
print 'kid'
else:
print 'baby'
elif 意思就是 else if。这样一来,我们就写出了结构非常清晰的一系列条件判断。
特别注意
: 这一系列条件判断会从上到下依次判断,如果某个判断为 True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行了。
十三,Python之 for循环
L = ['Adam', 'Lisa', 'Bart']
for name in L:
print name
注意: name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体(就是缩进的代码块)。
十四,Python之 while循环
利用while循环计算100以内奇数的和。
sum = 0
x = 1
while x<100:
x=x+2
sum+=x
print sum
十五,Python之 break退出循环
利用 while True 无限循环配合 break 语句,计算 1 + 2 + 4 + 8 + 16 + … 的前20项的和。
sum = 0
x = 1
n = 1
while True:
if n > 20:
break
sum = sum + x
x = x * 2
n = n + 1
print sum
print n
十六,Python之 continue继续循环
对已有的计算 0 - 100 的while循环进行改造,通过增加 continue 语句,使得只计算奇数的和:
sum = 0
x = 0
while True:
x = x + 1
if x > 100:
break
if x % 2 == 0:
continue
sum = sum + x
print sum
十七,Python之 多重循环
对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,23(2 < 3)。
for x in [1,2,3,4,5,6,7,8,9]:
for y in [1,2,3,4,5,6,7,8,9]:
if x < y:
print x * 10 + y
for x in range(1,10):
for y in range(x+1,10):
print str(x)+str(y)
首先,取x为枚举1-9.然后取y为比x至少大1,一直到9的枚举。然后用str返回其字符串,放在一起就ok了。