格式化输出
Name='Wang'
Age=21
Job='Meteorology student'
msg='''
-------Info or %s-------
Name=%s
Age=%d
Job=%s
-------end---------'''%(Name,Name,Age,Job)
print(msg)
这样一来输出的变量msg变得非常好看,非常实用的哦。
占位符的使用
格式化输出应注意占位符的使用,占位符
%s代表的相应变量应为字符串(string)
%d对应整数(digit)
%f对应浮点数(float)
布尔值(True, False)
真True
假False
字符串
字符串拼接
Name='Wang'
Job='Meteorology student'
print(Name+Job)
for循环
for i in range(3):
print(i)
其中,range(3)=[0,1,2], 代表从[0,1,2]这一数组中按从左到右顺序提取出变量i并应用到循环内部的计算当中。
range()的用法
range(起始值,终止值,间隔)
其中range的右端是开区间,即range取不到终止值!并且range中所有值必须为整数型!
小例题1:应用 for循环输出100以内能被3整除的数
for i in range(0,101,1):
if i%3==0:
print(i)
或者,有一个投机取巧的方法
for i in range(0,101,3):
print(i)
break在for循环的用法
和while语句一样,只要for循环没有被break打断,就会执行for循环之后的else语句,我们可以利用这一性质简化程序
!注意,即使是在最后一次循环的末尾使用break,也不要当作结果是完整的循环,因为这样子循环下面的else语句依旧不会执行。
小例题2:给定用户名:Wang,以及密码:duangduang,应用for循环判断输入的用户名和密码,并且在输入失败一定次数后后跳出一段话来骂输入的人(也可以用while循环试试)
方法1,利用布尔值
Yusername='Wang'
Ypassword='duangduang'
time=5
for i in range(time):
username=input('input your username')
password=input('input your password')
if username==Yusername and password==Ypassword:
print('welcome %s'%Yusername)
IDjudge=False
break
else:
print('wrong username or password, trying chance left: %d times'%(time-i-1))
IDjudge=True
if IDjudge==True:
print('臭不要脸')
方法2,利用else
Yusername='Wang'
Ypassword='duangduang'
time=5
for i in range(time):
username=input('input your username')
password=input('input your password')
if username==Yusername and password==Ypassword:
print('welcome %s'%Yusername)
break
else:
print('wrong username or password, trying chance left: %d times'%(time-i))
else:
print('臭不要脸')
continue在for循环中的用法
同while
列表,元组的使用
列表的表示
a=['alpha','beta','gamma','zelta']
a=list(('alpha','beta','gamma','zelta'))
a=list(['alpha','beta','gamma','zelta'])
后两个表示方法相当于调用了list这个族(class)的函数进行生成,我们接下来学的增删改查中加点(例如:a.append())的方法就是调用了list族中的函数对对象进行操作。(族这个概念之后会学到)
列表的增删改查
1.查/切片
a=['alpha','beta','gamma','zelta']
print(a)#显示列表内的所有内容
print(a[0])#显示列表的第一个值
print(a[-1])#显示列表最后一个值
print(a[0:2])#显示列表第一个到第二个的值(注意是取值范围最后是开区间)
print(a[0:])#显示列表第一个到最后一个值
print(a[0:-1])#显示列表第一个到倒数第二个值
print(a[0:-1:2])#从左到右两个两个取值
print(a[-1:0:-1]#从倒数第二个往左一个一个取值,注意,
#反方向输出时要保证print(a[右边界:左边界:负数]),这和从左到右是反着的
2.添加:append和insert
append:在列表的最后直接添加一个内容(例:a.append('sigma'))
insert: 把某个内容放到列表的某个位置(例:a.insert(列表位置,内容))
a=['alpha','beta','gamma','zelta']
print(a.append('sigma'))
print(a.insert(1,'sigma'))
3.修改
a=['alpha','beta','gamma','zelta']
print(a[1]='sigma')
print(a[1:3]=['a','b'])
4.删除
remove:a.remove(删除内容),注意,括号内不是删除内容的索引值‘index’,而是删除内容,且删除内容只能删一个
a=['alpha','beta','gamma','zelta']
a.remove('alpha')
print(a)
a.remove(a[0])
print(a)
pop:a.pop(索引值),并且能返回给你删掉的值,也只能删一个
a=['alpha','beta','gamma','zelta']
print(a.pop(0))
print(a)
del:del a[0],啥都能删
a=['alpha','beta','gamma','zelta']
del a[0]
print(a)
del a #整个变量都被删没了
clear: a.clear() ,清空列表内容变成空列表
5.1 count
a.count(元素内容)用来计算某个元素出现次数
a=['alpha','beta','gamma','zelta']
print(a.count('alpha'))
5.2 extend
a.extend(列表),给原来的列表里面添加另一个列表的元素
a=['alpha','beta','gamma','zelta']
b=['a','b','c','d']
print(a.extend(b))
5.3 index
a.index(元素内容),找到元素在列表的位置
a=['alpha','beta','gamma','zelta']
print(a.index('alpha'))
若元素中有多个相同,只找第一个元素
5.4 reverse
a.reverse(),反转元素位置,没有返回值
a=['alpha','beta','gamma','zelta']
a.reverse()
print(a)
5.5 sort
a.sort(),给元素排序,对于数字是从小到大排序,对于字符按字母表排序
a=['alpha','beta','gamma','zelta']
a.sort()
print(a)
5.6 in
元素 in a,判断元素是否在特定列表中,输出值为布尔值
a=['alpha','beta','gamma','zelta']
print('alpha' in a)
5.7 身份判断
a=['alpha','beta','gamma','zelta']
print(type(a) is a list)
输出结果为布尔值
5.8 enumerate
enumerate(列表,起始值*),用于显示列表及其所对应的索引,其中起始值参数默认为0
a=['alpha','beta','gamma','zelta']
print(enumerate(a,1))
例题:购物车程序
salary=5000
1.iphone6 5800
2.mac book 9000
3.coffee 32
4.python book 80
5.bicycle 1500
输入商品对应index,计算价格,提示余额
如果没啥想买的,顾客按quit进行结账,并显示买了什么东西,余额,并欢迎下次光临
我的答案:
salary=5000
goods=['iphone6s','mac book','coffee','python book','bicycle']
goodsValue=[5800,9000,32,80,1500]
goodlistgood=[]
for i in range(len(goods)):
goodlistgood.append(goods[i])
goodlistgood.append(str(goodsValue[i]))
goodlistgood=tuple(goodlistgood)
goodslist='''
---------------Small Shop--------------
商品序号 商品名:价格
1 %s:%s
2 %s:%s
3 %s:%s
4 %s:%s
5 %s:%s
'''%goodlistgood
return_to_buy=True
exit_GouWu=False
GouWuChe=[]
while True:
GouWuChe.sort()
print('你的余额:',salary,end='\n'*3)
print('你的购物车:',GouWuChe)
if exit_GouWu:
break
else:
print(goodslist,end='\n'*3)
if return_to_buy:
while True:
goodindex=int(input('选择一件你购买的商品序号:'))-1
if goodindex in range(1,len(goods)+1):
good=goods[goodindex]
goodValue=goodsValue[goodindex]
salaryleft=salary-goodValue
break
else:
print('请输入商品序号')
if salaryleft<0:
choose=input('余额不足,重新选择(输入Y)或结束购买(输入N)')
if choose=='Y':
continue
elif choose=='N':
break
exit_GouWu=True
else:
print('dada')
else:
salary=salaryleft
GouWuChe.append(good)
choose1=input('是否继续购买(Y/N)')
if choose1=='N':
exit_GouWu=True
elif choose1=='Y':
continue
改进
我们把商品和商品的价格是分开在两个列表中的,这样子比较傻,为什么不把对应的商品和价格放在一个列表里面并提出呢?
例如
goods=['iphone6s','mac book','coffee','python book','bicycle']
goodsValue=[5800,9000,32,80,1500]
变为
goods=[['iphone6s',5800],\
['mac book',9000],\
['coffee',32],\
['python book',80],\
['bicycle',1500]]
print('苹果6s',goods[0][0],'苹果6s的价格',goods[0][1])