字符格式化输入,对个人信息的输入输出操作,对列表和元组的增删改查和一些基本的方法。
昨日内容回顾:
注释的使用:"" ‘’ # 在python中双,单引号的意义是一样的
全注释 :ctrl + ?
例如:"hello,it's me!"
缩进
本节内容的简介:
集成开发环境(IDE):
VIM #经典linux下的文本编辑器
Emacs # linux文本编辑器,比Vim更容易
Eclipse #JAVA IDE,支持 python.c.c++等
Visual Studio # 微软开发的IDE
notepad++
sublime python开发的
Pycharm # 主要用于pycharm开发
Pycharm的使用
学会创建自己的项目以及一些基本的设置操作
基本知识点:
continue:
结束本次循环之间开始下一次循环
占位符:
%s s=string
%d d=digit整数
%f f=float浮点数,约等于小数
字符格式化输出
for
while
break,continue
数据类型
整数
字符串
列表,元组
购物车程序
字典
三级菜单
对个人信息的输入输出:
这里涉及到对.format的使用
f=(a,b,c,....)
msg='''
a={]
b={}
c={}
...
'''.format(*f)
或者用占位符:
ms=(name,name,age,job,salary,str(65-age))
msg = '''
--------------info of %s-----------
name = %s
age = %d
job = %s
salary = %d
you will retired after %s years
------------------end-----------------
'''%(ms)
1 #_auther_="stuwu79" 2 #date:2019/9/24 3 name = input("name:") 4 age = int(input("age:")) 5 job = input("job:") 6 salary = input("salary:") 7 8 if salary.isdigit(): #判断输入的salary是不是数字 9 salary=int(salary) 10 else: 11 exit("must input digit") 12 13 ms=(name,name,age,job,salary,str(65-age)) 14 15 msg = ''' 16 --------------info of {}----------- 17 name = {} 18 age = {} 19 job = {} 20 salary = {} 21 you will betired after {} years 22 ------------------end----------------- 23 '''.format(*ms) 24 25 print(msg)
数据运算:
type()查看数据类型
数据类型的初识:
数字
整数:int(integer)
整型和长整型 (py3中不区分统一叫整型)
浮点型:float
复数:complex (5+4j)与数学中不同
布尔: 只有两种状态
真True
假False
字符串:
salary.isdigit()
一切皆为对象,一切对象皆可分类。
列表和元组:
(1)查找:
查询某个内容在不在a中:
print("haidilaoge" in a)
结果:False不在
True在
a[x:y:z] x表示开始位置,y表示结束位置,z表示步长
1 #_auther_="stuwu79" 2 #date:2019/9/24 3 4 # name1 = "wuchao1" 5 # name2 = "wuchao2" 6 # name3 = "wuchao3" 7 # name4 = "wuchao4" 8 # 9 # names="wuchao1 wuchao2 wuchao3 wuchao4" 10 11 a=['wuchao1','wuchao2','wuchao3','wuchao4'] 12 #彼此之间有位置关系 13 14 15 #增删改查 16 17 #要取到最后:-1 18 #要取到倒数第二个:1 19 #a[1:-1:x]x表示的是步长 20 #步长是有方向的,从右向左带负号 21 22 #切片 23 # print(a[1:2])#取头不取尾 24 # print(a[1:])#从第二个位置一直取下去 25 # print(a[1:-1])#(最后一个不取)从第二个位置一直取下去,直到倒数第二个位置停止 26 # print(a[1:-1:1])#从左到右一个一个的去取 27 # print(a[1::2])#一直取到最后,从左到右,隔一个去取 28 print(a[3::-1]) 29 b=a[3::-1] 30 print(b) 31 # print(a[1:-1:-2])
(2)增加
append 默认插到最后的一个位置 (追加) insert相对更加灵活,将数据插入到任意一个位置
例如:
a.append("添加的内容的值")
a.insert(x,"添加的内容的值") x表示插入的位置
(3)修改
a[1]="wuchao999" 替换成功
a[1::3]=["wuchao22222","wuchao33333"] 替换位置是1和2的两个数据
(4)删除
remove pop del
remove("对应得要删除的内容") 不可以按位置删
b=a.pop(1) 按位置删除内容(可以用另一个变量去接收这个被删的值)
如果a.pop() 不指定默认删除最后一个
del a[0] 万物皆可删 del a 可删固定的内容也可以删整个变量
(5)其他操作
count方法 统计某个元素在列表中出现的次数:
例如:
t = ["to","to","is","are"].count("to")
print(t)
extend方法 将b中的所有元素加入到a中且对b没有影响
a = [1,2,3]
b = [4,5,6]
a.extend(b)
print(a)
print(b) 结果:[1,2,3,4,5,6]
[4,5,6]
index方法 知道内容但是不知道具体内容的位置
a=["wuchao33333","wuchao1","wuchao2"]
a.index("wuchao33333")
print(a.index("wuchao33333"))
结果是:0
思考题:如果列表中有两个同名的内容,如何跳过第一个,成功的找到第二个。
reverse方法 整个内容倒叙
a = [1,2,3,4]
a.reverse()
print(a)
结果是:4,3,2,1
sort方法 从小到大排序(默认sort中的reverse=False)
实现从大到小排序x.sort(reverse=True)
x = [4,21,2,3,5,]
x.sort()
print(x)
结果是:[2,3,4,5,21]
身份判断:
type(a) is list 结果是:True
或者False
Login登录功能:
(1)可以无限输入账号密码
1 #_auther_="stuwu79" 2 #date:2019/9/24 3 _user = "stuwu" 4 _passwd = "abc123" 5 6 username = input("Username:") 7 password = input("Password:") 8 9 if username == _user and password == _passwd : 10 print("Welcome %s login---"%username) 11 else: 12 print("Invalid username or password")
(2)只可以尝试3次输入账号密码
1 #_auther_="stuwu79" 2 #date:2019/9/24 3 _user = "stuwu" 4 _passwd = "abc123" 5 passed_authentication = False #通过认证(默认为假) 6 7 for i in range(3): 8 username = input("Username:") 9 password = input("Password:") 10 11 if username == _user and password == _passwd : 12 print("Welcome %s login---"%_user) 13 passed_authentication = True 14 break 15 else: 16 print("Invalid username or password!") 17 18 19 if not passed_authentication :#如果没通过验证,打印下面的语句 20 print("你试了几次了?臭弟弟!")
(3)改进版本
1 #_auther_="stuwu79" 2 #date:2019/9/24 3 # _user = "stuwu" 4 # _passwd = "abc123" 5 # passed_authentication = False #通过认证(默认为假) 6 # 7 # for i in range(3): 8 # username = input("Username:") 9 # password = input("Password:") 10 # 11 # if username == _user and password == _passwd : 12 # print("Welcome %s login---"%_user) 13 # passed_authentication = True 14 # break 15 # else: 16 # print("Invalid username or password!") 17 # 18 # 19 # if not passed_authentication :#如果没通过验证,打印下面的语句 20 # print("你试了几次了?臭弟弟!") 21 _user = "stuwu" 22 _passwd = "abc123" 23 24 for i in range(3): 25 username = input("Username:") 26 password = input("Password:") 27 if username == _user and password == _passwd : 28 print("Welcome %s login---"%_user) 29 break#brenak跳出循环 ,最下面的else就不会执行 30 else: 31 print("Invalid username or password!") 32 33 else:#只要上面的for循环语句正常执行完毕,才会执行下面的语句 34 print("你试了几次了?臭弟弟!")
FOR 循环的使用:
关于range(x)和range(1,x)的使用 range(1,x,y)y为步长
(1)循环输出1到10
1 for i in range(10) 2 print("loop:"i)
(补充)打印1到20和70到100之间的整数
1 for i in range(1,101): 2 if i<50 or i > 70: 3 print(i)
(2)
1 for i in range(1,101): 2 if i%2==0: 3 print("loop:",i)#输出1到100的偶数
(3)
1 #_auther_="stuwu79" 2 #date:2019/9/24 3 4 for i in range(1,101,2): 5 print("loop:",i)#输出1到100的奇数
无限循环:(while)
输入超过3次之后,提示是否继续输入账号密码。
1 _user = "stuwu" 2 _passwd = "abc123" 3 counter = 0 4 while counter < 3: 5 username = input("Username:") 6 password = input("Password:") 7 if username == _user and password == _passwd : 8 print("Welcome %s login---"%_user) 9 break#brenak跳出循环 ,最下面的else就不会执行 10 else: 11 print("Invalid username or password!") 12 counter += 1 13 if counter ==3 : 14 keep_going_choice = input("还玩不?(Y/N)") 15 if keep_going_choice == "Y" : 16 counter = 0 17 else : 18 print("你试了几次了?臭弟弟!")