广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python练习-购物单
  • 174
分享到

Python练习-购物单

2024-04-02 19:04:59 174人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、题目描述二、解题思路三、源码分享四、学习总结一、题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明刚刚找到工作,老板人很好,只是老板夫人

一、题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。

这不,大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。

小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。

现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。

取款机只能提供 100 元面额的纸币。小明想尽可能少取些现金,够用就行了。 你的任务是计算出,小明最少需要取多少现金。

以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。

****     180.90       88折
****      10.25       65折
****      56.14        9折
****     104.65        9折
****     100.30       88折
****     297.15        半价
****      26.75       65折
****     130.62        半价
****     240.28       58折
****     270.62        8折
****     115.87       88折
****     247.34       95折
****      73.21        9折
****     101.00        半价
****      79.54        半价
****     278.44        7折
****     199.26        半价
****      12.97        9折
****     166.30       78折
****     125.50       58折
****      84.98        9折
****     113.35       68折
****     166.57        半价
****      42.56        9折
****      81.90       95折
****     131.78        8折
****     255.89       78折
****     109.17        9折
****     146.69       68折
****     139.33       65折
****     141.16       78折
****     154.74        8折
****      59.42        8折
****      85.44       68折
****     293.70       88折
****     261.79       65折
****      11.30       88折
****     268.27       58折
****     128.29       88折
****     251.03        8折
****     208.39       75折
****     128.88       75折
****      62.06        9折
****     225.87       75折
****      12.89       75折
****      34.28       75折
****      62.16       58折
****     129.12        半价
****     218.37        半价
****     289.69        8折

需要说明的是,8888 折指的是按标价的 88%88 计算,而 88 折是按 80%80 计算,余者类推。 特别地,半价是按 50%50 计算。

请输出小明要从取款机上提取的金额,单位是元。

运行限制:

最大运行时间:1s
最大运行内存: 128M

二、解题思路

  • data = data.split()将data按空格进行拆分,把给出来的data放入列表中,进行循环遍历取值
  • 价格price转化为浮点数用于计算,折扣discount先保持字符串类型不变,让其去匹配对应的值
  • 当discount为两位长度时,当其为‘半价’,discount等于0.5,反之取其数字部分,将对应数字部分字符串进行强制转化浮点数乘以对应的小数点,float(discount[0])*0.1
  • 不是两位长度时,就是三位长度,此时数字部分对应的字符串部分为两位。也就是说强制转化为浮点数后的数字部分是一个两位数,也就是对应的小数点应该向前移动两位。float(discount[0:2])*0.01
  • 最后要算其需要的纸币100元是多少,也就是求出来的总和sum整除100之后再加一个1就是一共需要带的100元的数量,然后通过浮点数进行输出就可以啦!

三、源码分享

import math
data = '''
****     180.90       88折
****      10.25       65折
****      56.14        9折
****     104.65        9折
****     100.30       88折
****     297.15        半价
****      26.75       65折
****     130.62        半价
****     240.28       58折
****     270.62        8折
****     115.87       88折
****     247.34       95折
****      73.21        9折
****     101.00        半价
****      79.54        半价
****     278.44        7折
****     199.26        半价
****      12.97        9折
****     166.30       78折
****     125.50       58折
****      84.98        9折
****     113.35       68折
****     166.57        半价
****      42.56        9折
****      81.90       95折
****     131.78        8折
****     255.89       78折
****     109.17        9折
****     146.69       68折
****     139.33       65折
****     141.16       78折
****     154.74        8折
****      59.42        8折
****      85.44       68折
****     293.70       88折
****     261.79       65折
****      11.30       88折
****     268.27       58折
****     128.29       88折
****     251.03        8折
****     208.39       75折
****     128.88       75折
****      62.06        9折
****     225.87       75折
****      12.89       75折
****      34.28       75折
****      62.16       58折
****     129.12        半价
****     218.37        半价
****     289.69        8折
'''
data = data.split()
sum = 0
for i in range(0,len(data),3):
    price = float(data[i+1])
    discount = data[i+2]
    if len(discount) == 2:
        if discount == '半价':
            discount = 0.5
        else:
            discount = float(discount[0])*0.1
    else:
        discount = float(discount[0:2])*0.01
    sum += price*discount
print('%.0f'%(((sum//100)+1)*100))

四、学习总结

data = data.split() 语法将字符串按照空格进行分割:

a = '1 213 31'
print(a.split())
# ['1', '213', '31']

列表切片:[1:3]左闭右开,[:-1]表示除了最后一个其余的全都取:

a = [2,3,4,5,6]
print(a[0:1])
print(a[:-1])
# [2]
# [2, 3, 4, 5]

到此这篇关于python练习-购物单的文章就介绍到这了,更多相关Python购物单内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python练习-购物单

本文链接: https://www.lsjlt.com/news/163338.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python练习-购物单
    目录一、题目描述二、解题思路三、源码分享四、学习总结一、题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明刚刚找到工作,老板人很好,只是老板夫人...
    99+
    2022-11-13
  • Python购物车练习
    要求:    1.启动程序后,然该用户输入工资,然后打印商品列表    2.允许用户根据商品编号购买商品    3.用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒    4.可随时退出,退出时,打印已购买商品和余额python代...
    99+
    2023-01-31
    购物车 Python
  • Vue 购物车案例练习
    目录1.购物车案例2.代码实现3.总结1.购物车案例 经过一系列的学习,我们这里来练习一个购物车的案例 需求:使用vue写一个表单页面,页面上有购买的数量,点击按钮+或者-,可以增...
    99+
    2022-11-12
  • Python学习:购物程序
    一.脚本要求启动程序后,让用户输入工资,然后打印商品列表;允许用户根据商品的编号购买商品;用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒;结算购物车,打印已购买商品和余额;可随时退出程序;二.涉及Python知识点注释变量用户输入...
    99+
    2023-01-31
    程序 Python
  • python学习之登陆购物
    #author:yangxiao''' 购物车需求用户入口:1.商品信息存在文件里2.已购商品,余额记录。第一次启动程序时需要记录工资,第二次启动程序时谈出上次余额3.允许用户根据商品编号购买商品4.用户选择商品后,检测是否够,够就直接扣款...
    99+
    2023-01-31
    python
  • python实现简单购物商城
    本文为大家分享了购物商城小程序,供大家参考,具体内容如下 软件版本:python3.x 功能:实现简单购物商城 1.允许用户选择购买多少件 2.允许多用户登录,下一次登录后,继续按上次的余额继续购买 3....
    99+
    2022-06-04
    购物商城 简单 python
  • 学习python:练习5.简单红包程序
    快过年了,最近不少群里都发红包,晚上突然想用这个红包做个练习,简单实现了一下,效果不错哦觉得稍微有点困难的地方是红包的算法,想了久了点,也不知道微信的算法是咋样的...效果:代码:# 简单的拼手气红包 import random from...
    99+
    2023-01-31
    红包 简单 程序
  • python练习
    Python统计列表中的重复项出现的次数的方法#方法1:mylist = [1,2,2,2,2,3,3,3,4,4,4,4]myset = set(mylist)  #myset是另外一个列表,里面的内容是mylist里面的无重复 项for...
    99+
    2023-01-31
    python
  • python入门-简单基础题练习
    '''1.简述变量名称规范    (1)变量必须由字母,数字,下划线组成。    (2)变量不能是数字开头,更不可以是纯数字组成。    (3)变量不能是python的关键词。    (4)变量名称要有意义,不能随便瞎起。    (5)变量...
    99+
    2023-01-31
    入门 简单 基础
  • Python实现简单购物车小程序
    本文实例为大家分享了Python实现简单购物车小程序的具体代码,供大家参考,具体内容如下 要求 代码 # --*--coding:utf-8--*-- # Author: 村雨 ...
    99+
    2022-11-13
  • python习题练习(chapater
     #!/usr/bin/env python# coding: utf-8'for practise in chapater five'#定义一个函数,计算并返回两个数的乘机def product(a, b): return(a * b)#...
    99+
    2023-01-31
    习题 python chapater
  • Python练习1
    问答:1.你理解的python是什么为什么会使用python稍微比别的语言简单点,linux自动化运维需要2. 解释python第一行怎么写写的内容是做什么的怎么写可移植性强为什么#!/usr/bin/env python 说明环境,解释器...
    99+
    2023-01-31
    Python
  • Python 练习 —— 2048
    1. 引言      2048 这段时间火的不行啊,大家都纷纷仿造,“百家争鸣”,于是出现了各种技术版本:除了手机版本,还有C语言版、Qt版、Web版、java版、C#版等,刚好我接触Python不久,于是弄了个Python版——控制台...
    99+
    2023-01-31
    Python
  • python练习(1)
    文章目录 一、if语句—未满十八岁禁止入内二、判断一个数是否能同时被3和7整除三、判断你一个数能同时被3或者7整除 但不能同时被3和7整除四、输入年份 判断是否为闰年五、定义两个变量 保存一个...
    99+
    2023-09-01
    python
  • Python练习【2】
    题目1: 用Python实现队列(先入先出) 入队 出队 队头 队尾 队列是否为空 显示队列元素 代码: list=[] ##定义空列表用于存储数据 tip = """ ******队...
    99+
    2023-01-31
    Python
  • Python练习10
    无意看到老男孩的博文:合格linux运维人员必会的30道shell编程面试题及讲解http://oldboy.blog.51cto.com/2561410/1632876尝试着用刚开始学的python解答一些,权当练手了!如有错误,还请批评...
    99+
    2023-01-31
    Python
  • Python-练习5
    - 题目描述:输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2;- 输入描述:输入为一行,n(1 ≤ n ≤ 1000)- 输出描述:输出一个整数,即题目所求- 示例1:- ...
    99+
    2023-01-31
    Python
  • Python-练习6
     练习1:创建一个小游戏:      1). 游戏人物:    People           张琴成,男, 18岁,初始战斗值1000;           胡丽婷,女, 18岁, 初始战斗值2000;           安晋川,男,...
    99+
    2023-01-31
    Python
  • python练习2
    # 理论性1. 写出python中的几种分支结构,并解释其执行过程;2. 写出python中的几种循环结构,并解释其执行过程;3. python中是否支持switch语句   如果支持,写出该语句格式;   如果不支持,说说python中怎...
    99+
    2023-01-31
    python
  • Python练习3
    无意看到老男孩的博文:合格linux运维人员必会的30道shell编程面试题及讲解http://oldboy.blog.51cto.com/2561410/1632876尝试着用刚开始学的python解答一些,权当练手了!如有错误,还请批评...
    99+
    2023-01-31
    Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作