break和continue
i = 1
num = 0
while i <= 10:
print(i)
num += 1
if num == 3:
continue
if num == 5:
break
print("--------")
i += 1
#结果:
ubuntu@ubuntu-Lenovo:/work/python$ python3 1~10.py
1
--------
2
--------
3
3
--------
4
break:执行到此处,跳出距离最近的循环
continue:跳过此次continue以下的循环内的代码,执行下一次循环
循环嵌套:
两个while循环嵌套,break跳出距离自己近的循环
例如:
i = 1
while i <= 9:
j = 1
while j <= i:
print("*",end="\t")
j += 1
break
print("")
i += 1
ubuntu@ubuntu-Lenovo:/work/python$ python3 triangle_break.py
*
*
*
*
*
*
*
*
*
字符串在内存中的存储方式
>>> num = 100 #在python中100用一个字节存储(最大可存255),所以100占用一个字节
>>> name = "laowang"#在python中字符串每一个字符占用一个字节,没有'\0'换行符
>>> len(name) #所以占7个字节
7
>>> len(num) #len函数不能测试int型的大小
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()
>>> type(num)
<class 'int'>
>>> type(name)
<class 'str'>
>>> len(str(num)) # str()函数是字符串转换函数,可将整型转换成字符
3
组成字符串的两种方法
方法一:使用加号
>>> a = "lao"
>>> b = "wang"
>>> c = "zhao"
>>>
>>> a+b
'laowang'
>>> a+c
'laozhao'
>>>
>>> e = 10
>>> d = 20
>>> 10+20
30
可以使用加号去做字符串的拼接,也可做数字的加运算
但注意,字符串不能使用减号
>>> a = 'lao'
>>> b = 'wang'
>>> c = a+b
>>> c
'laowang'
>>> d = c-a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'str'
方法二:使用print中的表示方式
>>> a = 'lao'
>>> b = 'wang'
>>> c = a+b
>>> c
'laowang'
>>>
>>>
>>> d = "%s" %(a+b)
>>> d
'laowang'
>>> e = "===%s==="%(a+b+c)
>>> e
'===laowanglaowang==='
字符串下标,切片及字符串逆序
>>> str = "abcdefABCDEF"
>>> str
'abcdefABCDEF'
>>> str[0]
'a'
>>> str[2]
'c'
>>> str[10]
'E'
>>> str[11] #字符串下标,index从0开始
'F'
>>> str[3:11] #截取字符串,从第四个字符d开始,包含第四个,到第12个字符F,不包含第12个结束
'defABCDE'
>>> str[3:12] #截取字符串,从第四个字符d开始,包含第四个,到第13个字符口,不包含第13个结束
'defABCDEF'
>>> str[3:]#从第四个字符d开始,到整个字符串结束
'defABCDEF'
>>> str[1:10]
'bcdefABCD'
>>> str[1:10:1] #【开始位置:结束位置:步长】
'bcdefABCD'
>>> str[1:10:2]
'bdfBD'
>>> str[1:-1] #从第一个开始,到倒数第2个结束,包含倒数第二个
'bcdefABCDE'
>>> str[::] #正序
'abcdefABCDEF'
>>> str[-1:0:-1]
'FEDCBAfedcb'
>>> str[-1::-1]
'FEDCBAfedcba'
>>> str[::-1] #逆序排列
'FEDCBAfedcba'
>>> str[::-2]
'FDBfdb'
列表及增删改查
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['老王', '老李', 1997, 2000,3.14159]#列表可以存储不同类型的元素
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
访问列表中的值
In [4]: list1 = ['老王', '老李', 1997, 2000, 3.14159]
In [5]: list1[0]
Out[5]: '老王'
In [6]: list1[1:]
Out[6]: ['老李', 1997, 2000, 3.14159]
In [7]: list1[1:3]
Out[7]: ['老李', 1997]
增
In [8]: list1.append('laozhao')
In [9]: list1
Out[9]: ['老王', '老李', 1997, 2000, 3.14159, 'laozhao']
In [10]: list1.append('laoli') #从列表尾部插入
In [11]: list1
Out[11]: ['老王', '老李', 1997, 2000, 3.14159, 'laozhao', 'laoli']
In [12]: list1.insert(2,'zhaosi') #指定位置插入
In [13]: list1
Out[13]: ['老王', '老李', 'zhaosi', 1997, 2000, 3.14159, 'laozhao', 'laoli']
In [14]: list2 = ['list2']
In [15]: list3 = ['list3']
In [16]: list3.extend(list2) #将两个列表和在一些,等价于加号‘+’
In [17]: list3
Out[17]: ['list3', 'list2']
In [19]: list4 = list2 + list3 #和extend可以起到同一个效果
In [20]: list4
Out[20]: ['list2', 'list3', 'list2']
删
In [22]: list1
Out[22]: ['老王', '老李', 'zhaosi', 1997, 2000, 3.14159, 'laozhao', 'laoli']
In [23]: list1.pop()#从尾部删除
Out[23]: 'laoli'
In [24]: list1
Out[24]: ['老王', '老李', 'zhaosi', 1997, 2000, 3.14159, 'laozhao']
In [26]: list1.remove(1997)#指定元素内容删除
In [27]: list1
Out[27]: ['老王', '老李', 'zhaosi', 2000, 3.14159, 'laozhao']
In [28]: del list1[0] #指定元素下表删除
In [29]: list1
Out[29]: ['老李', 'zhaosi', 2000, 3.14159, 'laozhao']
改
In [36]: list1
Out[36]: ['老李', 'zhaosi', 2000, 3.14159, 'laozhao']
In [37]: list1[0] = 'laoli'
In [38]: list1
Out[38]: ['laoli', 'zhaosi', 2000, 3.14159, 'laozhao']
查
if 元素内容 in list1:
print(“True”)
判断元素内容是否在列表中存在,存在返回真,否则返回假
In [42]: list1
Out[42]: ['laoli', 'zhaosi', 2000, 3.14159, 'laozhao']
In [43]: if 'laoli' in list1: #判断'laoli'是否在列表中
....: print("True")
....:
True
In [44]: if 'laoli' not in list1:#判断'laoli'是否不在列表中
print("True")
....:
In [45]: if 'laoli' not in list1:
....: print("True")
....:
In [46]:
栗子:完成简易学生管理系统
# 定义列表
names = []
# 获取用户选择
while 1:
# 打印功能提示
print("="*50)
print("1:添加学生信息")
print("2:删除学生信息")
print("3:改变学生信息")
print("4:查看学生信息")
print("5:退去系统")
print("="*50)
sel = int(input("请输入你的选择:"))
# 判断用户选择,执行相应功能
if sel == 1:
new_name = input("请输入你要添加的名字:")
if new_name not in names:
names.append(new_name)
else:
print("%s you entered already exists"%new_name)
print(names)
elif sel == 2:
#判断输入的名字是否存在
while 1:
if len(names) == 0:
print("列表已为空,请先去添加")
break
print(names)
del_name = input("请输入你要删除的名字:")
if del_name not in names:
print(names)
print("你删除的名字不存在,请重新输入:")
if del_name in names:
names.remove(del_name)
print("成功删除名字:%s"%del_name)
print(names)
break
elif sel == 3:
index = 0
#判断输入的名字是否存在
while 1:
old_name = input("请输入你要修改的名字:")
chg_name = input("你要修改成什么?请输入名字:")
if old_name not in names:
print("你输入的名字不存在,请重新输入:")
if old_name in names:
for element in names: #找出要替换的元素所在的位置
if element == old_name:
names[index] = chg_name
index += 1
print(names) # print names after change
break
elif sel == 4:
print("查看列表中所有成员")
print("="*50)
print(names)
print("="*50)
elif sel == 5:
print("exit")
break
else:
print("你的输入有误,请重新输入。。。")