Python3学习(二)

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, 20003.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("你的输入有误,请重新输入。。。")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linux顿悟吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值