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的人们.若有什么不对,请大家及时指出, ...
随机推荐
- 几个简单排序算法的Python实现
一,冒泡排序 冒泡排序我就不多讲了,大体上就是比较相邻的两个数,每次把较大的数沉底.流程图大致上如下: 图是截得别人的,只是说明一下,代码没有参看别人的,写的不好,有更好的写法可以一起探讨.下面是代码 ...
- XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Saratov
A. Three Arrays 枚举每个$a_i$,双指针出$b$和$c$的范围,对于$b$中每个预先双指针出$c$的范围,那么对于每个$b$,在对应$c$的区间加$1$,在$a$处区间求和即可. 树 ...
- XVII Open Cup named after E.V. Pankratiev. Eastern GP, Division 1
A. Count The Ones $ans=b-c+1$. #include <stdio.h> using namespace std ; int a , b , c ; void s ...
- svn打分支和合并操作
1.svn打分支 到trunk里,选择Branch/tag.... 填写分支版本路径 到branch里svn up 一下,就有1.4.0分支了 2.svn合并 到trunk里,选择Merge.. 选择 ...
- centos7.4安装redis
参考连接 https://blog.csdn.net/qq_19399235/article/details/78313633/
- __x__(8)0906第三天__乱码问题
需要知道: 计算机只认 0 1 任何内容,计算机都会以 0 1 去存储 所以 0 1 与内容的编码方式/解码方式需要依照一定的规则,实现 0 1 与内容之间的转换. 字符集:一定的规则,由编码/解码采 ...
- php 获取 两个时间戳之间 相隔 【多少年】 【 多少个月】 【多少天】 【 多少个小时】 【多少分】【 多少秒 】
/** * 返回两个时间的相距时间,*年*月*日*时*分*秒 * @param int $one_time 时间戳一 大的时间戳 * @param int $two_time 时间戳二 小的时间戳 * ...
- 使用yield生成器,用Python实现用户对用户输入信息的监听和过滤
# -*- coding:utf-8 -*-'''''''''生成器是一次生成一个值的特殊类型函数.可以将其视为可恢复函数.调用该函数将返回一个可用于生成连续 x 值的生成[Generator],简单 ...
- mysql千万级数据量查询出所有重复的记录
查询重复的字段需要创建索引,多个条件则创建组合索引,各个条件的索引都存在则不必须创建组合索引 有些情况直接使用GROUP BY HAVING则能直接解决:但是有些情况下查询缓慢,则需要使用下面其他的方 ...
- hue,kylin,ambari
apache-kylin https://ambari.apache.org/ https://www.jianshu.com/p/c49c61b654da docker pull sequencei ...