#_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相关推荐

  1. python全栈开发学习资料

    python全栈开发,从python基础到web编程,包含课件和视频总共200多g,不是最新的,但是我觉得里面的老师讲解的还不错,学会了以后在学新的也很快 链接:https://pan.baidu.c ...

  2. Python全栈开发学习--HTML--标签--Day1

    本人作为一个即将入坑全栈的不知名的小码农,准备记录下自己学习过程中遇到的问题,以及学习到的各种知识,希望能在记录的过程中加深印象,也方便日后的复习.主要用作经验分享与学习记录,文章如有不妥或错误之处, ...

  3. Python全栈开发-数据分析-03 Pandas详解 (中)

    Pandas详解 (中) 一. 处理缺失值 1.1 drop函数:删除行,删除列 1.删除某列或某行数据可以用到pandas提供的方法drop 2.drop方法的用法: drop(labels, ax ...

  4. python全栈开发学习 01

    本节内容 01 计算机发展史简介 02 计算机的组成 03 计算机的基本原理 01 计算机发展史简介 计算机(computer,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算, ...

  5. python全栈开发学习_day1_计算机五大组成部分及操作系统

    一.计算机五大组成部分: 1)五大组成: 1.控制器(指挥系统,用于控制其他计算机硬件的工作) 2.运算器(用于数学运算及逻辑运算) 3.存储器(寄存器,高速缓存,内存,磁盘(机械,固态),磁带) 4 ...

  6. Python全栈开发-数据分析-03 Pandas详解 (下)

    Pandas详解 (下) 一. Excel文件的拆分与合并 1.1 一个文件夹下多个工作簿的合并[单独Sheet] 思路: 1,把文件夹下面所有的文件都遍历出来 2.循环读取每个文件 (1)第一次读取 ...

  7. python全栈开发要学些什么_战争热诚的python全栈开发之路

    从学习python开始,一直是自己摸索,但是时间不等人啊,所以自己为了节省时间,决定报个班系统学习,下面整理的文章都是自己学习后,认为重要的需要弄懂的知识点,做出链接,一方面是为了自己找的话方便,一方 ...

  8. 学python有前途吗-Python全栈开发有前景吗,是否值得学习?

    谢邀 一.什么是Python web全栈工程师? 全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人.也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer. ...

  9. 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂

    Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...

最新文章

  1. java string.indexof(string)_Java StringBuffer indexOf()方法
  2. js 正则之检测素数
  3. LeetCode算法题-Nth Digit(Java实现)
  4. 孵化业务快速落地与优化
  5. 如果没准备这些面试题,找工作还是缓一缓吧
  6. 强化学习 —— 资源清单
  7. MySQL 到底能不能放到 Docker 里跑? 1
  8. SegNet算法详解
  9. 安卓手机模拟路由器 测试WIFI信道遍历
  10. 工业机器人工具中心点标定的意义_如何理解工业机器人的工具中心点(TCP)?...
  11. linux wifi6 笔记本网卡,老旧笔记本电脑也能用WIFI6?无线网卡更换实录
  12. 【线性代数】P1 行列式基本概念
  13. (新)B站视频播放源地址获取及B站视频下载
  14. 抢红包案例分析以及代码实现(二)
  15. 【A40I-LVDS】
  16. 在线ico图标制作、python代码实现ico格式转换
  17. 傲游浏览器5241android,傲游浏览器Android平板版 三大功能图解妙用
  18. 融券余额大增,市场情绪极其悲观
  19. axios库读不到cookie_Vue axios 跨域请求无法带上cookie的解决
  20. python中代码注释使用的符号是_Python语句中用于注释代码的符号是

热门文章

  1. html 显示opencv视频文件夹,openmv与opencv的区别是什么?
  2. 【原生JS】写滚动指定位置展示动画
  3. 数据库操作 -- C#, MYSQL,动软
  4. java数组 如何动态增加、查询、删除元素
  5. mysql中文乱码解决
  6. 安装mysql5.7.msi_windows下安装mysql-installer-community-5.7.16.msi记录
  7. 垃圾邮件检测_如何在您的电子邮件中检测垃圾邮件
  8. 转载:组态软件测评∣WinCC、Citect、LabVIEW、InTouch、Ingnition,你更喜欢用哪个?
  9. JDK17上手,新特性让你起飞
  10. 内外网隔离-Traffic Policy