0003.5-20180422-自动化第四章-python基础学习笔记--脚本

1-shopping

  1. """
  2. v = [
  3. {"name": "电脑","price":"1999"},
  4. {"name": "鼠标", "price": "10"},
  5. {"name": "游艇", "price": "20"},
  6. {"name": "美女", "price": "998"},
  7. ]
  8.  
  9. #1.让用户输入自己账户余额
  10. while True:
  11. money = input("请输入账户金额:")
  12. money = money.strip() #去掉输入字符前后的空格
  13. if money.isdecimal(): #判断输入的字符是否为十进制字符
  14. money = int(money) #将输入的字符通过int格式化为数字
  15. break
  16. else:
  17. print("请正确输入数字!") #如果输入的不为十进制字符,提示正确输入数字
  18. print(money, type(money)) #显打印钱的金额,再打印金额数字的字符类型,此处类型应为:int
  19.  
  20. """
  21.  
  22. """
  23. v = [
  24. {"name": "电脑","price":"1999"},
  25. {"name": "鼠标", "price": "10"},
  26. {"name": "游艇", "price": "20"},
  27. {"name": "美女", "price": "998"},
  28. ]
  29.  
  30. #2. 显示商品列表
  31. #解决思路1-------用户和开发者都麻烦
  32. for item in v:
  33. #item的类型为字典
  34. #第一次循环时,item = {"name": "电脑","price":"1999"} ,可以分别通过字典的key取对应的value值
  35. print(item['name'],item['price'])
  36.  
  37. sel = input('请选择商品:') # sel = '鼠标' v[1]
  38. for row in v:
  39. if sel == row['name']:
  40. print('商品价格为:',row['price'])
  41. """
  42.  
  43. v = [
  44. {"name": "电脑","price":""},
  45. {"name": "鼠标", "price": ""},
  46. {"name": "游艇", "price": ""},
  47. {"name": "美女", "price": ""},
  48. ]
  49. #解决思路2-----让用户和开发者都比较简单
  50.  
  51. # num = 0 #只有程序员才明白数字是从0开始计算的,所以对用户不太友好
  52. # for item in v:
  53. # print(num, item['name'], item['price'])
  54. # num += 1
  55.  
  56. #2.显示商品列表
  57. while True:
  58. money = input("请输入账户金额:")
  59. money = money.strip() #去掉输入字符前后的空格
  60. if money.isdecimal(): #判断输入的字符是否为十进制字符
  61. money = int(money) #将输入的字符通过int格式化为数字
  62. break
  63. else:
  64. print("请正确输入数字!") #如果输入的不为十进制字符,提示正确输入数字
  65. #print(money, type(money)) #显打印钱的金额,再打印金额数字的字符类型,此处类型应为:int
  66. print(money)
  67.  
  68. num = 1
  69. for item in v:
  70. print(num, item['name'], item['price']) #打印商品序号,商品名称、商品价格
  71. num += 1
  72.  
  73. #3.让用户购买商品
  74. cost = 0
  75. while True:
  76. index = input('请输入商品序号(q/Q结算):')
  77. if index.lower().strip() == "q":
  78. break
  79. #应考虑用户输入是否:空格,是否数字,范围
  80. index = index.strip()
  81. if index.isdecimal():
  82. index = int(index)
  83. index = index - 1 #用户输入的index数值需减去1,才为商品的实际序号
  84. #if index > 0 and index < 5
  85. if index >= 0 and index < len(v):
  86. #用户输入的序号是正确的
  87. # v[index] 为字典
  88.  
  89. #以下为拆分字符串格式化
  90. #v[index]['name']
  91. #val = v[index]['price']
  92. #val1 = int(val)
  93. #temp = '您购买商品%s,价格:%d' %(v[index]['name'],int(v[index]['price']))
  94. print('您购买商品:%s,价格:%d' %(v[index]['name'],int(v[index]['price'])))
  95.  
  96. #----或者用上面的方法拆开
  97.  
  98. #v[index]['name']
  99. #v[index]['price']
  100. #print('您购买商品%s,价格:%d' %(v[index]['name'],v[index]['price']))
  101. cost += int(v[index]['price'])
  102. print('合计金额:',cost)
  103. else:
  104. print('输入商品序号不存在!')
  105. else:
  106. print('请输入数字!')
  107. if money >= cost:
  108. print('购买成功')
  109. else:
  110. print('余额不足')
  111.  
  112. #扩展:问题:购买商品信息,商品名称,单价,个数

2-39-ti-creat-data-split-page-show

  1. #创造305跳数据,用户每输入页码显示10条数据
  2. user_list = []
  3. i = 1
  4. while i <= 305:
  5. #创建字典方法3时注释掉下文:
  6. # name = "alex-%d" %(i,)
  7. # email = "email-%d" %(i,)
  8. # pwd = "pwd-%d" %(i,)
  9.  
  10. #创建字典方法1
  11. # temp = {}
  12. # temp['username'] = name
  13. # temp['email'] = email
  14. # temp['password'] = pwd
  15.  
  16. #创建字典方法2
  17. # temp = {
  18. # 'username' : name,
  19. # 'email' : email,
  20. # 'password' : pwd
  21. # }
  22.  
  23. #创建字典方法3
  24. # temp = {
  25. # 'username' : "alex-%d" %(i,),
  26. # 'email' : "email-%d" %(i,),
  27. # 'password' : "pwd-%d" %(i,)
  28. # }
  29.  
  30. #方法4 直接在列表中定义字典,通过开始的while循环并在列表的尾部进行追加生成数据
  31. user_list.append({
  32. 'username' : "alex-%d" %(i,),
  33. 'email' : "email-%d" %(i,),
  34. 'password' : "pwd-%d" %(i,)
  35. })
  36. i += 1
  37.  
  38. while True: #循环让用户可以一直选择想看的数据,直到用户选择退出程序
  39. page = input('请选择页码(每页显示10条数据)')
  40. # page = page.strip() #去掉输入字符前后的空格
  41. # if page.isdecimal(): #判断输入的字符是否为十进制字符
  42. # page = int(page) #将输入的字符通过int格式化为数字
  43. # break
  44. # else:
  45. # print('请输入正确的数值页码!') #如果输入的不为十进制字符,提示正确输入数字
  46. page = int(page)
  47. start = (page - 1) * 10 #定义在列表中取页码数字的起始位置数值
  48. end = page * 10 #定义在列表中取页码数字的结束位置数值
  49. current_page_user = user_list[start:end] #指定用户实际输入页码后获取列表中数据的起始和结束位置
  50. for item in current_page_user:
  51. print(item)

3-17-ti-random-check-code

  1. def check_code():
  2. import random
  3. checkcode = ''
  4. for i in range(4):
  5. current = random.randrange(0,4)
  6. if current != i:
  7. temp = chr(random.randint(65,90))
  8. else:
  9. temp = random.randint(0,9)
  10. checkcode += str(temp)
  11. return checkcode
  12.  
  13. #随机生成验证码
  14. while True:
  15. code = check_code()
  16. print(code)
  17. inp = input('请输入验证码:')
  18. if inp.strip().lower() == code.strip().lower():
  19. print('验证码输入成功!')
  20. break
  21. else:
  22. print('验证码错误,请重新输入!')

4-18-ti-replace-sensitive-word

  1. #针对苍老师,东京热进行敏感词替换过滤
  2. li = ['苍老师','东京热']
  3. msg = input('请小心输入内容:')
  4. for item in li:
  5. if item in msg:
  6. msg = msg.replace(item, '***')
  7. print(msg)

5-12-ti-user-str-join-str

  1. #给定一个列表中有很多字符串,通过将列表中的字符串之间通过下划线进行连接:
  2.  
  3. """
  4. #方法1:
  5. li = ['alex','eric','rain','y8ik0','ih8vbb']
  6.  
  7. msg = ""
  8. is_first = True #设定第一次循环值为真
  9. for item in li:
  10. if is_first: #第一次循环值为真时,tmp 的值等于item循环获取的值
  11. tmp = item
  12. is_first = False #第一次item取完值后将is_fisrst修改为假,使tmp 不再直接等于item获得的值
  13. else:
  14. tmp = "_" + item #字符串拼接
  15. msg += tmp #字符串拼接
  16. print(msg)
  17.  
  18. """
  19.  
  20. """
  21. #方法2:
  22. #字符串,v = "xxx" v.join(可迭代对象)
  23. #for 循环的,就是可迭代对象
  24.  
  25. li = ['alex','eric','rain','y8ik0','ih8vbb']
  26.  
  27. # v = "_"
  28. # result = v.join(li)
  29. # print(result)
  30.  
  31. #方法2改进优化版:
  32.  
  33. result = "_".join(li)
  34. print(result)
  35.  
  36. """
  37. #方法3:王青帅版
  38. # 思路:根据列表索引取第0个值,插入到新的列表li1中,然后通过循环在新的列表li1的尾部通过取li列表长度循环取原li列表的值,并且在其前面添加下划线,追加在新列表元素的后面
  39.  
  40. li = ['alex','eric','rain','y8ik0','ih8vbb']
  41.  
  42. length = len(li)
  43. li1 = []
  44. li1.insert(0,li[0])
  45. i = 1
  46. while i <= length - 1:
  47. li1.append('_' + li[i])
  48. i += 1
  49. print(li1)
  50.  
  51. a = ''
  52. for item in li1:
  53. a += item
  54. print(a)

6-13-ti-addition-and-range

  1. #实现一个整数加法计算器,考虑到用户输入的字符是否是存在空格
  2.  
  3. """
  4. sum = 0
  5. while True:
  6. content = input('请输入数字:')
  7. num = content.split('+')
  8. for i in num:
  9. i = i.strip()
  10. sum += int(i)
  11. print(sum)
  12.  
  13. """
  14. #加法计算器方法2:-----只能是两个数字相加的计算器
  15. # 5 + 9
  16. content = input('请输入表达式:')
  17. #content.split('+') #以加号作为关键字符进行分割,可以将给定字符中所有有加号的地方进行分割
  18. #content.split('+',2) #对给定字符中的前两个加号的地方进行分割,后面有加号的地方不分割
  19. a,b = content.split('+',1) #对给定字符中的第一加号的地方进行分割,后面有加号的地方不分割
  20. a = int(a.strip())
  21. b = int(b.strip())
  22. print(a+b)
  23.  
  24. """
  25. sum = 0
  26. content = input('请输入数字:')
  27. num = content.split('+')
  28. for i in num:
  29. i = i.strip()
  30. sum += int(i)
  31. print(sum)
  32.  
  33. """
  34.  
  35. ###########
  36. #对于有限的数据循环---->使用for ,range
  37.  
  38. #对于死循环,永远无限循环----> while True
  39.  
  40. ##############
  41. # range ---用于生成连续的数字,列表类型
  42. # xrange(),用于生成连续的数字,for 循环时才能使用,未知类型(生成器)
  43.  
  44. # py2.7 中的range 是打印所有的数据,py2.7中有加强版的xrange,使用一个才生成一个数据
  45. #py3 中的range使用一个才生成一个数据,相当于py2.7中的xrange
  46. # py3 range = xrange(2.7)
  47.  
  48. """
  49.  
  50. #打印1-100所有数字,除了77之外
  51.  
  52. for num in range(1,101):
  53. if num == 77:
  54. continue
  55. print(num)
  56. """
  57.  
  58. """
  59. #打印1-100之间所有的奇数:
  60.  
  61. for num in range(1,100,2): #1,为起始数据,100为小于此数据,2相当于步长----默认不写,相当于步长为1
  62. print(num)
  63. """
  64.  
  65. """
  66. #打印1-100之间所有的数,倒序显示:
  67. for num in range(100,0,-1):
  68. print(num)
  69. """
  70.  
  71. """
  72. # 打印如下列表的索引序号:
  73.  
  74. li = [11,22,33,44,55,66]
  75. #print(len(li))
  76. for num in range(0,len(li)):
  77. print(num)
  78.  
  79. """

0003.5-20180422-自动化第四章-python基础学习笔记--脚本的更多相关文章

  1. 0006-20180422-自动化第七章-python基础学习笔记

    内容回顾: - bytes - str 和bytes - int - str - list - tuple - 深拷贝和浅拷贝 今日内容: 数据类型 - bytes - int - str - boo ...

  2. 0005-20180422-自动化第六章-python基础学习笔记

    day6 内容回顾: 1. 变量 2. 条件 3. while循环 4. 数据类型 - int - bit_length - bool - True/False - str - upper - low ...

  3. 0004-20180422-自动化第五章-python基础学习笔记

    内容回顾:1.数据类型 2.for和while循环 continue break #如下循环将怎么打印结果? for i in range(1,10): print(i) for i in range ...

  4. 0003-20180422-自动化第三章-python基础学习笔记

    3章 内容回顾: 1. 计算机组成 2. 程序编译器 3. 变量 4. 条件 5. 循环 6. py2与py3区别 - 默认编码, - 除法, - input ,raw_input 7. 位,字节关系 ...

  5. 0001-20180421-自动化第一章-python基础学习笔记

    ======================学习python==================介绍: python种类: cpython(*),jpython,ironpython,rubypyth ...

  6. C++ Primer Plus 第四章 复合类型 学习笔记

    第四章 复合类型 1. 数组概述 1.1 数组的定义 数组(array)是一种数据格式,能够存储多个同类型的值.每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素. 数组声明的三 ...

  7. Python基础学习笔记(四)语句

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://w ...

  8. Python基础学习笔记FromImooc.com

    1.list L = ['a','a','a','a','a','a3'] L[0] = a L[-1] = a3   添加新元素 L.append('paul') L.insert(-1,'Paul ...

  9. python 基础学习笔记(1)

    声明:  本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...

随机推荐

  1. VB封装的WebSocket模块,拿来即用

    一共就下面的两个模块,调用只使用到mWSProtocol模块,所有调用函数功能简单介绍一下: 建立连接后就开始握手,服务端用Handshake()验证,如果是客户端自己发送握手封包接收数据,先用Ana ...

  2. Hadoop双namenode配置搭建(HA)

    配置双namenode的目的就是为了防错,防止一个namenode挂掉数据丢失,具体原理本文不详细讲解,这里只说明具体的安装过程. Hadoop HA的搭建是基于Zookeeper的,关于Zookee ...

  3. 问题10:获取当前页面宽度JS

    var mleft=document.getElementById("mleft"); var h = document.documentElement.clientHeight; ...

  4. ECMA Script 6_数值的扩展

    1. 二进制 和 八进制 新的表示法 前缀 0b(或0B) 表示 二进制 前缀 0o(或 0O )表示 八进制 console.log(0b111110111 === 503); // true co ...

  5. 关于*.ashx 处理程序调试时 未能创建类型 错误

    出现改问题的根本原因是因为,我更改过改类型的名字,而IDE并没有更改  ***.ashx. 注册类型名字. 所更改的类的名字应该是  "项目名字.文件名字“ 例如下图 应该更改类为 ”Wx_ ...

  6. Retrieve pictures from Excel file using OLEDB

    string file = @"C:\sample.xlsx"; if(System.IO.File.Exists(file)) { Microsoft.Office.Intero ...

  7. 1. Scala概述

    1.1 概述 联邦理工学院洛桑(EPFL)的Martin Odersky于2001年开始设计Scala Scala是Scalable Language的简写,是一门多范式的编程语言 1.2 Scala ...

  8. [crypto][ipsec] 简述ESP协议的sequence number机制

    预备 首先提及一个概念叫重放攻击,对应的机制叫做:anti-replay https://en.wikipedia.org/wiki/Anti-replay IPsec协议的anti-replay特性 ...

  9. Python的基本语法2

    一.运算符 # 算术运算符, +, -, *, /, //, %, **, 注意//为整除 # 赋值运算符, =, +=, -=, *=, /=, //= ,%=, **= # 比较运算符, ==, ...

  10. flask学习笔记(1)-虚拟环境安装

    Mac(类Linux): pip install virtualenv mkdir testvirtualenv cd testvirtualenv virtualenv flask-env#创建虚拟 ...