0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本
1-shopping
- """
- v = [
- {"name": "电脑","price":"1999"},
- {"name": "鼠标", "price": "10"},
- {"name": "游艇", "price": "20"},
- {"name": "美女", "price": "998"},
- ]
- #1.让用户输入自己账户余额
- while True:
- money = input("请输入账户金额:")
- money = money.strip() #去掉输入字符前后的空格
- if money.isdecimal(): #判断输入的字符是否为十进制字符
- money = int(money) #将输入的字符通过int格式化为数字
- break
- else:
- print("请正确输入数字!") #如果输入的不为十进制字符,提示正确输入数字
- print(money, type(money)) #显打印钱的金额,再打印金额数字的字符类型,此处类型应为:int
- """
- """
- v = [
- {"name": "电脑","price":"1999"},
- {"name": "鼠标", "price": "10"},
- {"name": "游艇", "price": "20"},
- {"name": "美女", "price": "998"},
- ]
- #2. 显示商品列表
- #解决思路1-------用户和开发者都麻烦
- for item in v:
- #item的类型为字典
- #第一次循环时,item = {"name": "电脑","price":"1999"} ,可以分别通过字典的key取对应的value值
- print(item['name'],item['price'])
- sel = input('请选择商品:') # sel = '鼠标' v[1]
- for row in v:
- if sel == row['name']:
- print('商品价格为:',row['price'])
- """
- v = [
- {"name": "电脑","price":""},
- {"name": "鼠标", "price": ""},
- {"name": "游艇", "price": ""},
- {"name": "美女", "price": ""},
- ]
- #解决思路2-----让用户和开发者都比较简单
- # num = 0 #只有程序员才明白数字是从0开始计算的,所以对用户不太友好
- # for item in v:
- # print(num, item['name'], item['price'])
- # num += 1
- #2.显示商品列表
- while True:
- money = input("请输入账户金额:")
- money = money.strip() #去掉输入字符前后的空格
- if money.isdecimal(): #判断输入的字符是否为十进制字符
- money = int(money) #将输入的字符通过int格式化为数字
- break
- else:
- print("请正确输入数字!") #如果输入的不为十进制字符,提示正确输入数字
- #print(money, type(money)) #显打印钱的金额,再打印金额数字的字符类型,此处类型应为:int
- print(money)
- num = 1
- for item in v:
- print(num, item['name'], item['price']) #打印商品序号,商品名称、商品价格
- num += 1
- #3.让用户购买商品
- cost = 0
- while True:
- index = input('请输入商品序号(q/Q结算):')
- if index.lower().strip() == "q":
- break
- #应考虑用户输入是否:空格,是否数字,范围
- index = index.strip()
- if index.isdecimal():
- index = int(index)
- index = index - 1 #用户输入的index数值需减去1,才为商品的实际序号
- #if index > 0 and index < 5
- if index >= 0 and index < len(v):
- #用户输入的序号是正确的
- # v[index] 为字典
- #以下为拆分字符串格式化
- #v[index]['name']
- #val = v[index]['price']
- #val1 = int(val)
- #temp = '您购买商品%s,价格:%d' %(v[index]['name'],int(v[index]['price']))
- print('您购买商品:%s,价格:%d' %(v[index]['name'],int(v[index]['price'])))
- #----或者用上面的方法拆开
- #v[index]['name']
- #v[index]['price']
- #print('您购买商品%s,价格:%d' %(v[index]['name'],v[index]['price']))
- cost += int(v[index]['price'])
- print('合计金额:',cost)
- else:
- print('输入商品序号不存在!')
- else:
- print('请输入数字!')
- if money >= cost:
- print('购买成功')
- else:
- print('余额不足')
- #扩展:问题:购买商品信息,商品名称,单价,个数
2-39-ti-creat-data-split-page-show
- #创造305跳数据,用户每输入页码显示10条数据
- user_list = []
- i = 1
- while i <= 305:
- #创建字典方法3时注释掉下文:
- # name = "alex-%d" %(i,)
- # email = "email-%d" %(i,)
- # pwd = "pwd-%d" %(i,)
- #创建字典方法1
- # temp = {}
- # temp['username'] = name
- # temp['email'] = email
- # temp['password'] = pwd
- #创建字典方法2
- # temp = {
- # 'username' : name,
- # 'email' : email,
- # 'password' : pwd
- # }
- #创建字典方法3
- # temp = {
- # 'username' : "alex-%d" %(i,),
- # 'email' : "email-%d" %(i,),
- # 'password' : "pwd-%d" %(i,)
- # }
- #方法4 直接在列表中定义字典,通过开始的while循环并在列表的尾部进行追加生成数据
- user_list.append({
- 'username' : "alex-%d" %(i,),
- 'email' : "email-%d" %(i,),
- 'password' : "pwd-%d" %(i,)
- })
- i += 1
- while True: #循环让用户可以一直选择想看的数据,直到用户选择退出程序
- page = input('请选择页码(每页显示10条数据)')
- # page = page.strip() #去掉输入字符前后的空格
- # if page.isdecimal(): #判断输入的字符是否为十进制字符
- # page = int(page) #将输入的字符通过int格式化为数字
- # break
- # else:
- # print('请输入正确的数值页码!') #如果输入的不为十进制字符,提示正确输入数字
- page = int(page)
- start = (page - 1) * 10 #定义在列表中取页码数字的起始位置数值
- end = page * 10 #定义在列表中取页码数字的结束位置数值
- current_page_user = user_list[start:end] #指定用户实际输入页码后获取列表中数据的起始和结束位置
- for item in current_page_user:
- print(item)
3-17-ti-random-check-code
- def check_code():
- import random
- checkcode = ''
- for i in range(4):
- current = random.randrange(0,4)
- if current != i:
- temp = chr(random.randint(65,90))
- else:
- temp = random.randint(0,9)
- checkcode += str(temp)
- return checkcode
- #随机生成验证码
- while True:
- code = check_code()
- print(code)
- inp = input('请输入验证码:')
- if inp.strip().lower() == code.strip().lower():
- print('验证码输入成功!')
- break
- else:
- print('验证码错误,请重新输入!')
4-18-ti-replace-sensitive-word
- #针对苍老师,东京热进行敏感词替换过滤
- li = ['苍老师','东京热']
- msg = input('请小心输入内容:')
- for item in li:
- if item in msg:
- msg = msg.replace(item, '***')
- print(msg)
5-12-ti-user-str-join-str
- #给定一个列表中有很多字符串,通过将列表中的字符串之间通过下划线进行连接:
- """
- #方法1:
- li = ['alex','eric','rain','y8ik0','ih8vbb']
- msg = ""
- is_first = True #设定第一次循环值为真
- for item in li:
- if is_first: #第一次循环值为真时,tmp 的值等于item循环获取的值
- tmp = item
- is_first = False #第一次item取完值后将is_fisrst修改为假,使tmp 不再直接等于item获得的值
- else:
- tmp = "_" + item #字符串拼接
- msg += tmp #字符串拼接
- print(msg)
- """
- """
- #方法2:
- #字符串,v = "xxx" v.join(可迭代对象)
- #for 循环的,就是可迭代对象
- li = ['alex','eric','rain','y8ik0','ih8vbb']
- # v = "_"
- # result = v.join(li)
- # print(result)
- #方法2改进优化版:
- result = "_".join(li)
- print(result)
- """
- #方法3:王青帅版
- # 思路:根据列表索引取第0个值,插入到新的列表li1中,然后通过循环在新的列表li1的尾部通过取li列表长度循环取原li列表的值,并且在其前面添加下划线,追加在新列表元素的后面
- li = ['alex','eric','rain','y8ik0','ih8vbb']
- length = len(li)
- li1 = []
- li1.insert(0,li[0])
- i = 1
- while i <= length - 1:
- li1.append('_' + li[i])
- i += 1
- print(li1)
- a = ''
- for item in li1:
- a += item
- print(a)
6-13-ti-addition-and-range
- #实现一个整数加法计算器,考虑到用户输入的字符是否是存在空格
- """
- sum = 0
- while True:
- content = input('请输入数字:')
- num = content.split('+')
- for i in num:
- i = i.strip()
- sum += int(i)
- print(sum)
- """
- #加法计算器方法2:-----只能是两个数字相加的计算器
- # 5 + 9
- content = input('请输入表达式:')
- #content.split('+') #以加号作为关键字符进行分割,可以将给定字符中所有有加号的地方进行分割
- #content.split('+',2) #对给定字符中的前两个加号的地方进行分割,后面有加号的地方不分割
- a,b = content.split('+',1) #对给定字符中的第一加号的地方进行分割,后面有加号的地方不分割
- a = int(a.strip())
- b = int(b.strip())
- print(a+b)
- """
- sum = 0
- content = input('请输入数字:')
- num = content.split('+')
- for i in num:
- i = i.strip()
- sum += int(i)
- print(sum)
- """
- ###########
- #对于有限的数据循环---->使用for ,range
- #对于死循环,永远无限循环----> while True
- ##############
- # range ---用于生成连续的数字,列表类型
- # xrange(),用于生成连续的数字,for 循环时才能使用,未知类型(生成器)
- # py2.7 中的range 是打印所有的数据,py2.7中有加强版的xrange,使用一个才生成一个数据
- #py3 中的range使用一个才生成一个数据,相当于py2.7中的xrange
- # py3 range = xrange(2.7)
- """
- #打印1-100所有数字,除了77之外
- for num in range(1,101):
- if num == 77:
- continue
- print(num)
- """
- """
- #打印1-100之间所有的奇数:
- for num in range(1,100,2): #1,为起始数据,100为小于此数据,2相当于步长----默认不写,相当于步长为1
- print(num)
- """
- """
- #打印1-100之间所有的数,倒序显示:
- for num in range(100,0,-1):
- print(num)
- """
- """
- # 打印如下列表的索引序号:
- li = [11,22,33,44,55,66]
- #print(len(li))
- for num in range(0,len(li)):
- print(num)
- """
0003.5-20180422-自动化第四章-python基础学习笔记--脚本的更多相关文章
- 0006-20180422-自动化第七章-python基础学习笔记
内容回顾: - bytes - str 和bytes - int - str - list - tuple - 深拷贝和浅拷贝 今日内容: 数据类型 - bytes - int - str - boo ...
- 0005-20180422-自动化第六章-python基础学习笔记
day6 内容回顾: 1. 变量 2. 条件 3. while循环 4. 数据类型 - int - bit_length - bool - True/False - str - upper - low ...
- 0004-20180422-自动化第五章-python基础学习笔记
内容回顾:1.数据类型 2.for和while循环 continue break #如下循环将怎么打印结果? for i in range(1,10): print(i) for i in range ...
- 0003-20180422-自动化第三章-python基础学习笔记
3章 内容回顾: 1. 计算机组成 2. 程序编译器 3. 变量 4. 条件 5. 循环 6. py2与py3区别 - 默认编码, - 除法, - input ,raw_input 7. 位,字节关系 ...
- 0001-20180421-自动化第一章-python基础学习笔记
======================学习python==================介绍: python种类: cpython(*),jpython,ironpython,rubypyth ...
- C++ Primer Plus 第四章 复合类型 学习笔记
第四章 复合类型 1. 数组概述 1.1 数组的定义 数组(array)是一种数据格式,能够存储多个同类型的值.每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素. 数组声明的三 ...
- Python基础学习笔记(四)语句
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-chinese-encoding.html 3. http://w ...
- 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 ...
- python 基础学习笔记(1)
声明: 本人是在校学生,自学python,也是刚刚开始学习,写博客纯属为了让自己整理知识点和关键内容,当然也希望可以通过我都博客来提醒一些零基础学习python的人们.若有什么不对,请大家及时指出, ...
随机推荐
- VB封装的WebSocket模块,拿来即用
一共就下面的两个模块,调用只使用到mWSProtocol模块,所有调用函数功能简单介绍一下: 建立连接后就开始握手,服务端用Handshake()验证,如果是客户端自己发送握手封包接收数据,先用Ana ...
- Hadoop双namenode配置搭建(HA)
配置双namenode的目的就是为了防错,防止一个namenode挂掉数据丢失,具体原理本文不详细讲解,这里只说明具体的安装过程. Hadoop HA的搭建是基于Zookeeper的,关于Zookee ...
- 问题10:获取当前页面宽度JS
var mleft=document.getElementById("mleft"); var h = document.documentElement.clientHeight; ...
- ECMA Script 6_数值的扩展
1. 二进制 和 八进制 新的表示法 前缀 0b(或0B) 表示 二进制 前缀 0o(或 0O )表示 八进制 console.log(0b111110111 === 503); // true co ...
- 关于*.ashx 处理程序调试时 未能创建类型 错误
出现改问题的根本原因是因为,我更改过改类型的名字,而IDE并没有更改 ***.ashx. 注册类型名字. 所更改的类的名字应该是 "项目名字.文件名字“ 例如下图 应该更改类为 ”Wx_ ...
- Retrieve pictures from Excel file using OLEDB
string file = @"C:\sample.xlsx"; if(System.IO.File.Exists(file)) { Microsoft.Office.Intero ...
- 1. Scala概述
1.1 概述 联邦理工学院洛桑(EPFL)的Martin Odersky于2001年开始设计Scala Scala是Scalable Language的简写,是一门多范式的编程语言 1.2 Scala ...
- [crypto][ipsec] 简述ESP协议的sequence number机制
预备 首先提及一个概念叫重放攻击,对应的机制叫做:anti-replay https://en.wikipedia.org/wiki/Anti-replay IPsec协议的anti-replay特性 ...
- Python的基本语法2
一.运算符 # 算术运算符, +, -, *, /, //, %, **, 注意//为整除 # 赋值运算符, =, +=, -=, *=, /=, //= ,%=, **= # 比较运算符, ==, ...
- flask学习笔记(1)-虚拟环境安装
Mac(类Linux): pip install virtualenv mkdir testvirtualenv cd testvirtualenv virtualenv flask-env#创建虚拟 ...