编码世界程序员的那些事儿Python 运维

Python系列-List和while

2017-02-20  本文已影响92人  憨厚的老菜鸟

上一节:《Python系列-数字和字符串》

List

上一篇文章中,介绍了Python中的数字和字符串,这一节中,来介绍一下Python的集合——List,例如:

nums = [1,2,3,4,5]
names = ['小明','小李','小王']

上面的的例子就是list的定义,数据被包含在[](方括号)之间,内部每一项使用,(逗号)分隔。list内的数据,可以全部是数字或字符串,也可以是复合类型。例如:

compound = [1,'小明']

但是,通常我们定一个list的时候,里面的数据最好是同一个类型的。

list示例

list同strings一样,可以被索引和切片。例如:

>>>word = ['P','y','t','h','o','n']
>>>#索引方式
>>>word [0] #
'P'
>>>word [-1]
'n'
>>>#切片方式
>>>word [-2:]    
['o', 'n']
>>>word [-3:-1]    
['h', 'o']

切片的方式,我们可以理解为是区间式索引,可以取list中一段数据。看下面的例子,字符的左侧就是改字符的索引值,比如所P左侧的0,就是该字符的索引值,最右侧的的值代表着这个list的长度,所以说这个list的长度为6。

 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

利用切片的方式,获取所有的数据内容,得到是一个全新的list。例如:

>>>word[:]
 ['P','y','t','h','o','n']

list也支持连接操作,例如:

>>>word+ ['G','o','o','d']
 ['P','y','t','h','o','n','G','o','o','d']

和strings不同的是,strings是不可变的,但是list是一个可变的。例如:

>>>fibo = [1,1,2,3,4,8,13] #斐波那契数列,这里面包含了一个错误
>>>fibo[4] = 5
>>>fibo
[1,1,2,3,5,8,13]

也可以向list内加入新的项,使用方法append()(后面的文章会介绍),例如:

>>>fibo.append(21)
>>>fibo
[1, 1, 2, 3, 5, 8, 13, 21]
>>>fibo.append(13 + 21)
>>>fibo
[1, 1, 2, 3, 5, 8, 13, 21, 34]

当然,我们也可以使用切片的方式来改变list,例如:

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # 将小写的c、d 、e 替换成大写的
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # 移除C、D、E
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # 清空leterrs
>>> letters[:] = []
>>> letters
[]

len()也适用于list,例如:

>>>fibo = [1,1,2,3,5,8,13] #斐波那契数列
>>>len(fibo)
7

list内部也可以包含其他的list,例如:

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

while

while是Python中的循环语句的一个,只要条件允许的情况下,会一直循环下去。看下面的例子:

while 1 : 
    print('while')
    

上面的例子,会一直输出while , 例子中 1是条件,当条件是true的时候,那么会执行循环内部的代码,如果是false,则不执行循环内部。在Python中,只有当整数值是0的时候是false,其他整数值都是true
在例子中,可以看到,while内部代码有缩进。缩进是Python分组分块的表示方法。也可以说一种从属关系吧。如print('while')是while语句内部的代码,所以需要缩进来表示。值得注意的是,同一种从属关系的代码,需要相同缩进。例如:

# 利用while实现斐波那契数列
a , b = 0 , 1
while b <10
    print(b)
    a , b = b , a+b
    

#结果输出
1
1
2
3
5
8

上面的例子中,包含了几个新特性:

运算符 解释
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于
!= 不等于
>>> a='bcd'
>>> a
'bcd'
>>> print('a的值为:' , a)
a的值为: bcd

print()的关键字参数可以避免结束后输出换行符,或者输出不同的字符串,例如:

>>> a, b = 0, 1
>>> while b < 1000:
...     print(b, end=',')
...     a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

上一篇 下一篇

猜你喜欢

热点阅读