python全栈开发学习03
#_author:felix#date 2018/7/3# 格式化输出# ctrl+? 选中的行都注释name = input ("Name:")age = int(input("Age:"))job = input("Job:")salary = input("Salary:") if salary.isdigit(): #长得像不像数字 salary = int(salary)# else:# #print("must input digit!")# exit("must input digit")msg = '''-------info of %s---------Name:%sAge:%dJob:%ssalary:%fYou will be retired %s years---------end--------''' %(name,name,age,job,salary,65-age)print(msg)
#_author:felix#date 2018/7/3'''#数据类型知识点#在python3中不区分整形与长整形 我之前手机装了个termux 装了python3 ,我尝试着去试他能最多运行到2的多少次方,我最终试到了2的一百万次方,我就没试了,在尝试一千万的时候就卡住了 #for循环for i in range(1,100): if i % 2 == 1: print("loop:",i)'''#利用步长# for i in range(1,100,2):# print(i)#跳过50-70不打印# for i in range(100):# if i > 70 or i < 50:# print(i) #写一个登陆接口#报错IndentationError: expected an indented block 说明没缩进 #passwd_authentication = False #flag标zhi位 # _user = "felix"# _passwd = "123"# for i in range(2):# username = input(" Username: ")# password = input(" Password: ")## if username == _user and password == _passwd:# print("Welcome %s login...." % _user)# passwd_authentication = True# break# else:# print("Invalid username or password")### if not passwd_authentication:# print("登陆次数过多!") _user = "felix"_passwd = "123"for i in range(2): username = input(" Username: ") password = input(" Password: ") if username == _user and password == _passwd: print("Welcome %s login...." % _user)break else: print("Invalid username or password") else: print("登陆次数过多!") #只要上面的for循环正常执行完毕,中间没有被打断,就会执行else语句#break过后就不会执行最后面的else语句,for后面不能加elif 只能加else
#_author:felix#date 2018/7/4# 设置断点调试程序_user = "felix"_passwd = "123"counter = 0while counter < 3: username = input(" Username: ") password = input(" Password: ") if username == _user and password == _passwd: print("Welcome %s login...." % _user)break else: print("Invalid username or password") counter += 1 if counter == 3: keep_going_choice = input("继续登陆吗?[y/n]")if keep_going_choice == "y": counter = 0 else: print("登陆次数过多!")
#_author:felix#date 2018/7/4'''continue语句,break,以及flag的使用'''exit_flag = Falsefor i in range(10):if i<5:continue print(i)for j in range(10): print("layer2",j)if j == 6: exit_flag = True break if exit_flag:break
#_author:felix#date 2018/7/4'''a=['a','b','c','d','e','f'] #增删改查#查 切片print(a[0:]) #取到最后print(a[0:-1]) #取到倒数第二个值print(a[0::2])#从左到右隔一个去取print(a[0::-2])#从右到左隔一个去取print(a[::-2])print(a[:])#打印整个列表 print(a[3:]) #添加 append insert a.append('z') #插到末尾最后位置print(a)a.insert(1,'w')#插入到任意位置print(a) #修改 a[0] = 'r'print(a) a[1:3]=['t','y']print(a) #删除 remove pop dela.remove('a') #直接把值写入,删除print(a) a.pop(1)#括号里是索引b=a.pop(1)print(a)print(b) del a[0]del a #可以删除某个固定的内容,也可以把整个对象删除 w=['to','be','or','not','to','be'].count('to') #计算某个值出现的次数print(w) #extend 类似于append a = [1,2,3]b = [4,5,6]a.extend(b) print(a)print(b) #index 通过名称找索引a = ['a','b','c','d','e','f']print(a.index('b')) #reverse 倒转 无返回值a = ['a','b','c','d','e','f']a.reverse()print(a) #sort 数字从小到大排序,字母从大写到小写排序a = [2,4,6,9,8,5]a.sort()print(a) #sort 数字从小到大排序,字母从大写到小写排序a = [2,4,6,9,8,5]a.sort(reverse=True)print(a) #将倒着排序 按着ctrl 鼠标到sort会出现提示 reverse默认Falsea = [2,4,6,9,8,5]a.sort(reverse=True)print(a) 总结: 查:索引切片.count 查看某个元素出现的次数.index 根据内容找其对应的位置 增加:.append() 追加.insert(索引,'内容').extend 扩展 修改:列表名[索引] = '新的值'通过切片修改 列表名[开始:结束] = ['内容1','内容2',...] 不匹配就会默认删掉没有匹配的 删除:remove("内容")pop(索引) 如果不指定默认删除最后一个del 值/列表名/列表名[索引].clear() 清空排序:sort()reversed()如何判断是否是一个列表:type(列表名) is list #会返回一个true
#_author:felix#date 2018/7/5#写一个购物车 product_list = [ ('Mac',9000), ('Kindle',800), ('tesla',900000), ('book',100), ('biycle',2000)] salary = input('please input your salary:')shopping_car = []if salary.isdigit(): salary = int(salary)#打印商品列表 while True:for i,v in enumerate(product_list,1): print(i,'>>>>',v)#引导用户选择商品 choice = input('选择购买的商品编号[退出:q]:') #验证输入是否合法 if choice.isdigit(): choice = int(choice)if choice > 0 and choice <= len(product_list):#将用户选择的商品通过choice取出来 p_item = product_list[choice-1]if p_item[1] < salary: salary -= p_item[1] shopping_car.append(p_item)else: print('余额不足,还剩%s'%salary) print(p_item)else: print('编码不存在')elif choice == 'q': print('-------------你已经购买如下商品------------') for i in shopping_car: print(i) print('余额:%s'%salary)break else: print('invalid input')
#_author:felix#date 2018/7/6 #字典'''>>> header = { 'Host' : 'www.java.sun.com', 'Connection' : 'keep-alive' }>>> header['Host']'www.java.sun.com'>>> empty_d = {}>>> empty_d['host'] = 'www.java.sun.com'>>> empty_d{'host': 'www.java.sun.com'}>>> empty_d['host']'www.java.sun.com'>>> empty_d = {}>>> empty_d['host']Traceback (most recent call last): File "<pyshell#14>", line 1, in <module> empty_d['host']KeyError: 'host'>>> v1=empty_d.get['host']Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> v1=empty_d.get['host']TypeError: 'builtin_function_or_method' object is not subscriptable>>> v1=empty_d.get('host')>>> type(v1)<class 'NoneType'>>>> v2 = empty_d.get("host","www.python.com")>>> v2'www.python.com'>>> empty_d{} 字典的get方法可以返回一个默认值,但不会对字典产生影响,字典里的内容不会改变字符串,整数类不可变类型都可以作为字典的键,元组也可以作为键,前提是元组的元素都是不可变类型。 与列表的推导一样,字典也有相应的字典推导,如下,生成了10个链接,以1-10的数字作为键,以键为页号的url作为值 >>> urls_d = {i:"www.python.com/?page{}".format(i) for i in range(1,11)}>>> urls_d{1: 'www.python.com/?page1', 2: 'www.python.com/?page2', 3: 'www.python.com/?page3', 4: 'www.python.com/?page4', 5: 'www.python.com/?page5', 6: 'www.python.com/?page6', 7: 'www.python.com/?page7', 8: 'www.python.com/?page8', 9: 'www.python.com/?page9', 10: 'www.python.com/?page10'}>>> 可以使用字典的 items() 方法对字典进行循环遍历,每次可以同时获得键和值:或者使用 keys() 方法对键进行遍历,每次可以利用键获得相应的值,两种方法类似,对比两种方法>>>for key,val in urls_d.items(): print(key,val) ========================= RESTART: E:/python/test.py =========================1 www.python.com/?page12 www.python.com/?page23 www.python.com/?page34 www.python.com/?page45 www.python.com/?page56 www.python.com/?page67 www.python.com/?page78 www.python.com/?page89 www.python.com/?page910 www.python.com/?page10 >>> for key in urls_d.keys(): print(key,urls_d[key]) ========================= RESTART: E:/python/test.py =========================1 www.python.com/?page12 www.python.com/?page23 www.python.com/?page34 www.python.com/?page45 www.python.com/?page56 www.python.com/?page67 www.python.com/?page78 www.python.com/?page89 www.python.com/?page910 www.python.com/?page10>>> #关于集合 集合的特点是无序且无重复的元素,python提供了集合类型set和相关的操作,主要包括 成员测试,添加元素,去除元素等方法,也提供了数学中常见的集合的交,并,差 运算等。 可以使用set()或大括号{} 来初始化集合,如下>>> s1 = set(['a','b','c'])>>> s1{'a', 'b', 'c'}>>> s2 = {'a','b','c'}>>> s2{'a', 'b', 'c'}>>> s1 == s2True>>> 空集合只能用set进行定义,当{}中没有写入任何内容,其实就相当于建了个字典>>> s3 = {}>>> type(s3)<class 'dict'>>>> s4 = set()>>> s4set()>>> type(s4)<class 'set'>>>> 可以用add()方法向集合中添加一个元素,或者可以使用update()向集合中添加多个元素,可以用 in 检查某个元素是否在此集合中 >>> s4.add('x')>>> s4{'x'}>>> s4.update(['y','z'])>>> s4{'y', 'z', 'x'}>>> 'y' in s4True>>> 可以用循环遍历集合中的元素>>>s4 = {'y', 'z', 'x'}>>>for x in s4: print(x) ========================= RESTART: E:/python/test.py =========================xyz #随机数 可以利用python中的random 模块中的方法生成随机数,如 random.random 将生成0 - 1 之间的随机数,如下>>> import random>>> random.random()0.6710898931607918>>>可以使用randoma.randint(a,b)方法返回a-b之间(包括a,b)的整数 >>> random.randint(2,9)5>>> random.randint(2,9)7>>> random.randint(2,9)9>>> random.randint(2,9)6>>> random.randint(2,9)7 如果希望可以在程序中多个产生随机数的位置产生相同的随机数,则可以通过设置随机数的种子值来实现,如下>>> random.random()0.6619420090129978>>> random.seed(20)>>> random.random()0.9056396761745207>>> random.random()0.6862541570267026>>> random.random()0.7665092563626442>>> random.seed(20)>>> random.random()0.9056396761745207>>>#enumerate的使用可以使用enumerate在对列表,元组等类型操作时,同时返回元素的索引和元素的值
for ind,val in enumerate([10,20,30,40,50,60]): print(ind,val) ========================= RESTART: E:/python/test.py =========================0 101 202 303 404 505 60>>> for ind,val in enumerate([10,20,30,40,50,60],1): print(ind,val) ========================= RESTART: E:/python/test.py =========================1 102 203 304 405 506 60>>> for ind,val in enumerate([10,20,30,40,50,60],3): print(ind,val) ========================= RESTART: E:/python/test.py =========================3 104 205 306 407 508 60>>> #元组 只可读!!#如果元组里只有一个元素,在其后面加个逗号查询与列表一样嵌套:a = [[1,2,3],'felix',5,(3,5,6)]print(a[0][1])打印出2n级嵌套一样 '''
#_author:felix#date 2018/7/9 '''不可变类型:整型,字符串,元组可变类型:列表,字典 键必须是不可变类型字典两大特点:无序,键唯一 字典的操作: 增:a = {'name':'felix'}a['age'] = 21print(a) a.setdefault('hobby','python') #如果字典里有对应的键,则不修改原来键对应的值print(a) setdefault有返回值 查: 通过键去查 a[name] 看到所有的键:print(a.keys()) 看到所有的值:print(a.values()) 看到所有的键值对:print(a.items()) 改: a = {'name':'felix','age':'21'}a['name'] = 'alex'a = {'name':'felix','age':'21'}b = {'1':'111','2':'222'}a.update(b)将字典b里的东西加入字典a 删: a = {'name':'felix','age':'21'}del a['name'] #将a中的name的键值对删除 a.clear() #将字典a清空 a.pop('age') #会删掉age对应的键值对,pop有返回值,返回age对应的值 a.popitem() #随机删除一组键值对 del a #删除整个字典 其他操作以及涉及到的方法: dic1 = dict.fromkeys(['host1','host2','host3'],'test')创建一个字典,n个键值对为 hostn ,test 字典的嵌套 字典排序:dic = {5:'555',2:'222',4:'444'}print(sorted(dic)) 字典的遍历: a = {'name':'felix','age':'21'} (推荐用这个,效率高)for i in a: print(i,a[i]) ====================== RESTART: E:/python/test_dict.py ======================name felixage 21>>>或者:for i in a.items(): print(i) ====================== RESTART: E:/python/test_dict.py ======================('name', 'felix')('age', '21')>>> 或者(和第一个是同样的效果)for i,v in a.items(): print(i,v) ====================== RESTART: E:/python/test_dict.py ======================name felixage 21
关于字符串:#1 重复输出字符串print('hello'*20) #2 通过索引获取字符串中的字符,与列表的切片相同print('helloworld'[2:]) #3 成员判断 inprint('el' in 'hello') #如果在会打印True #4 格式字符串print('felix is a man')print('%s is a man'%'felix') #5 字符串拼接a = '123'b = 'fdgd'c = '4rf'w = a+b+c以上拼接效率低,用下面的方法a = '123'b = 'fdgd'c = '4rf'w = ''.join([a,b,c]) # '' 里面可以加东西如---,+++。不加表示无间隔拼接 字符串的内置方法: str = 'hello kitty' print(str.count('l')) #看字符串str中有几个lprint(str.capitalize()) #将字符串首字母大写print(str.center(50,'-')) #变成-------------------hello kitty--------------------print(str.endswith('y')) #验证以什么结尾 返回一个布尔值print(str.startswith('y')) #验证以什么开始 返回一个布尔值print(str.expandtabs(tabsize = 10))#str = 'he\tllo kitty' 会在he tllo之间增加十个空格print(str.find('t')) #返回查找到的第一个 t 的索引值 print(str.format(name = 'felix')) #另一种方式格式化输入,字符串变为 str = 'hello kitty {name}' #输出就会变成 hello kitty felixprint(str.format_map({'name':'felix'})) index() 与 find() 功能一样,如果没有会报错,find会返回-1 推荐用find print('adf224'.isalnum()) #如果字符串里只有字母,汉字和数字会返回布尔值True 更多关于字符串 http://www.runoob.com/python3/python3-string.html 作业程序 :三级菜单要求: 1.打印省市县三级菜单 2.可返回上一级 3.可以随时退出程序 '''
转载于:https://www.cnblogs.com/root1/p/9351856.html
python全栈开发学习03相关推荐
- python全栈开发学习资料
python全栈开发,从python基础到web编程,包含课件和视频总共200多g,不是最新的,但是我觉得里面的老师讲解的还不错,学会了以后在学新的也很快 链接:https://pan.baidu.c ...
- Python全栈开发学习--HTML--标签--Day1
本人作为一个即将入坑全栈的不知名的小码农,准备记录下自己学习过程中遇到的问题,以及学习到的各种知识,希望能在记录的过程中加深印象,也方便日后的复习.主要用作经验分享与学习记录,文章如有不妥或错误之处, ...
- Python全栈开发-数据分析-03 Pandas详解 (中)
Pandas详解 (中) 一. 处理缺失值 1.1 drop函数:删除行,删除列 1.删除某列或某行数据可以用到pandas提供的方法drop 2.drop方法的用法: drop(labels, ax ...
- python全栈开发学习 01
本节内容 01 计算机发展史简介 02 计算机的组成 03 计算机的基本原理 01 计算机发展史简介 计算机(computer,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算, ...
- python全栈开发学习_day1_计算机五大组成部分及操作系统
一.计算机五大组成部分: 1)五大组成: 1.控制器(指挥系统,用于控制其他计算机硬件的工作) 2.运算器(用于数学运算及逻辑运算) 3.存储器(寄存器,高速缓存,内存,磁盘(机械,固态),磁带) 4 ...
- Python全栈开发-数据分析-03 Pandas详解 (下)
Pandas详解 (下) 一. Excel文件的拆分与合并 1.1 一个文件夹下多个工作簿的合并[单独Sheet] 思路: 1,把文件夹下面所有的文件都遍历出来 2.循环读取每个文件 (1)第一次读取 ...
- python全栈开发要学些什么_战争热诚的python全栈开发之路
从学习python开始,一直是自己摸索,但是时间不等人啊,所以自己为了节省时间,决定报个班系统学习,下面整理的文章都是自己学习后,认为重要的需要弄懂的知识点,做出链接,一方面是为了自己找的话方便,一方 ...
- 学python有前途吗-Python全栈开发有前景吗,是否值得学习?
谢邀 一.什么是Python web全栈工程师? 全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人.也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer. ...
- 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂
Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...
最新文章
- java string.indexof(string)_Java StringBuffer indexOf()方法
- js 正则之检测素数
- LeetCode算法题-Nth Digit(Java实现)
- 孵化业务快速落地与优化
- 如果没准备这些面试题,找工作还是缓一缓吧
- 强化学习 —— 资源清单
- MySQL 到底能不能放到 Docker 里跑? 1
- SegNet算法详解
- 安卓手机模拟路由器 测试WIFI信道遍历
- 工业机器人工具中心点标定的意义_如何理解工业机器人的工具中心点(TCP)?...
- linux wifi6 笔记本网卡,老旧笔记本电脑也能用WIFI6?无线网卡更换实录
- 【线性代数】P1 行列式基本概念
- (新)B站视频播放源地址获取及B站视频下载
- 抢红包案例分析以及代码实现(二)
- 【A40I-LVDS】
- 在线ico图标制作、python代码实现ico格式转换
- 傲游浏览器5241android,傲游浏览器Android平板版 三大功能图解妙用
- 融券余额大增,市场情绪极其悲观
- axios库读不到cookie_Vue axios 跨域请求无法带上cookie的解决
- python中代码注释使用的符号是_Python语句中用于注释代码的符号是
热门文章
- html 显示opencv视频文件夹,openmv与opencv的区别是什么?
- 【原生JS】写滚动指定位置展示动画
- 数据库操作 -- C#, MYSQL,动软
- java数组 如何动态增加、查询、删除元素
- mysql中文乱码解决
- 安装mysql5.7.msi_windows下安装mysql-installer-community-5.7.16.msi记录
- 垃圾邮件检测_如何在您的电子邮件中检测垃圾邮件
- 转载:组态软件测评∣WinCC、Citect、LabVIEW、InTouch、Ingnition,你更喜欢用哪个?
- JDK17上手,新特性让你起飞
- 内外网隔离-Traffic Policy