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

时间:2022-05-30 14:02:51

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基础学习笔记--脚本的更多相关文章

  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&plus;&plus; 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&period;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. &lbrack;转&rsqb;C&num;网络编程&lpar;基本概念和操作&rpar; - Part&period;1

    本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part1.aspx 引言 C#网络编程系列文章计划简单地讲述 ...

  2. Strongly connected 挺简单的tarjan

    题意:给你一个连通图,问你最多加多少条边,还能保证该图不是强连通图. 对整个图求强连通分量,然后对图缩点,记录一下缩点之后每隔点包含的原来的点的个数,找出最少的那个点,然后对这个点建成完全图,对另外的 ...

  3. 测试 windows live writer

    This is the first article written by the writer!   wenzhaoshanda

  4. js控制滚动条默认在底部

    html: <div id="chat_content" class="chat_content">                    < ...

  5. &period;net的retrofit--WebApiClient库

    # 库简介 WebApiClient是开源在github上的一个httpClient客户端库,内部基于HttpClient开发,是一个只需要定义c#接口(interface),并打上相关特性,即可异步 ...

  6. C&num;学习(一)&colon;委托和事件

    预备知识 在学习委托和事件之前,我们需要知道的是,很多程序都有一个共同的需求,即当一个特定的程序事件发生时,程序的其他部分可以得到该事件已经发生的通知. 而发布者/订阅者模式可以满足这种需求.简单来说 ...

  7. 如何使用Git提高研发团队工作效率?

    为什么使用Git 随着互联网时代的来临与发展,尤其分布式开发的大力引入,对于开发工程师来说,代码管理变成了头等难题.10多个人或者更多的成员的研发团队如何管理同一份代码,异地办公如何跟同事有效的维护同 ...

  8. 分析java内存情况

    使用pmap查看进程内存 运行命令 使用pmap可以查看某一个进程(非java的也可以)的内存使用使用情况, 命令格式: pmap 进程id 示例说明 例如运行: pmap 12358 显示结果如下图 ...

  9. OGRE渲染流程

    本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/

  10. C&num; tcp udp 串口 通信

    简单的实现tcp同步和异步,udp,串口通信 static List<TcpClientState> clientArray = new List<TcpClientState&gt ...