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++ 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. silverlight 调试问题

    web端调用方式是:<param name="source" value="/ClientBin/Chns.Web.RoomChart.xap?v=012" ...

  2. dup(dup2/dup3)

    readme man~ NAME dup, dup2, dup3 - duplicate a file descriptor SYNOPSIS #include <unistd.h> in ...

  3. (81)Wangdao.com第十六天_JavaScript 严格模式

    严格模式 除了正常的运行模式,JavaScript 还有第二种运行模式:严格模式(strict mode).顾名思义,这种模式采用更加严格的 JavaScript 语法 同样的代码,在正常模式和严格模 ...

  4. react_app 项目开发 (7)_难点集合

    /src/App/Admin/Header 布局 import {Row, Col} from "antd" <div className="header_box& ...

  5. Java课程课后作业190315之最大连续子数组(二维数组版)

    ,, 在本周的课堂上,老师再一次提高了要求,将一维数组升级成为了二维数组,然后求出块状的连续子数组. 一开始还想着借鉴之前球一维数组的O(n)的算法,后来还是没有找到头绪,舍友讲了自己的办法,但是没有 ...

  6. ng 服务端渲染

    官网文档 教学视屏 ng-toolkit @ng-toolkit/universal 注意: 使用 npm和yarn安装项目依赖,不要使用cnpm ng add @ng-toolkit/univers ...

  7. 聚焦AI实践,2019 A2M峰会将在上海举行!

    18年,BERT重磅发布,刷新了很多NLP的任务的最好性能:KENSHO等智能化应用的成功应用,让知识图谱在证券行业的建设思路和应用实践成为业内较为关注的问题:强化学习也在与人类的对战游戏中独领风骚: ...

  8. 使用ajax分页查询

    controller: /** * 查询所有用户/查找指定用户 * 分页+搜索 * */@RequestMapping("/findClientBySize")@ResponseB ...

  9. Web开发(XAMPP服务器搭建)

    XAMPP是一个功能强大的搭建服务器环境的软件集成包.它集成了Apache.MySql.php.perl这几个服务器常用的软件.而我们在使用时,省去了安装这些软件的步骤,只需要下载XAMPP,解压缩. ...

  10. WinForm控件Dock属性设置会遮盖其他控件的解决

    在被遮盖住的控件上,右击弹出快捷菜单,然后选择“置于顶层”.