小实验1:购物车记录


1 shopping_list = [
 2     ("iphone",5800),
 3     ("Mac_Pro",12000),
 4     ("bike",1500),
 5     ("bed",800),
 6     ("cap",30),
 7 ]
 8 s_list=[]
 9 use_salary = input("Please input you Salary:")
10
11 if use_salary.isdigit():                               # 如果用户输入的是数字
12     use_salary = int(use_salary)                       # 赋值为整形数字
13     while True:                                       # 如果输入数字为真 则进行循环
14         for index,item in enumerate(shopping_list,1):     # index()表示数列中的位置,enumerate表示的就是数列中的下标
15             #print(shopping_list.index(item),item)
16             print(index,item)                           # index 就是下标,item 就是数列项
17         use_choice = input("What do you want ‘number‘,and Please input ‘q‘to exit:")
18
19         if use_choice.isdigit():
20             use_choice = int(use_choice)           # 判断输入的是否为数字
21             if use_choice > -1 and use_choice < len(shopping_list):    # 如果取的数值在列表范围,才可以进行判断金额
22                 shoping_item = shopping_list[use_choice]        # 通过用户输入序号找到产品,而产品中包括名称和价格
23                 if shoping_item[1] <= use_salary:
24                     use_salary -= shoping_item[1]      # shoping_item 表示表中价格列
25                     s_list.append(shoping_item)
26                     print("Add %s in you cart,you current balance is \033[31;1m %s \033[0m." %(shoping_item,use_salary))
27                 else:
28                     print("You don‘t have enough money and you current balance is \033[31;1m%s\033[0m" %(use_salary))
29         elif use_choice == "q":
30             print("------ list ------")
31             for i in s_list:
32                print(i)
33             print("your current balance is %s"%use_salary)
34             exit()
35         else:
36             print("not exist...")

自己之前构思了一个,不过不如这个清晰,还是要多写些,多联系,培养思路很重要...

Keep going !

				
时间: 2024-08-02 06:08:19

小实验1:购物车记录的相关文章

基于互联网内容的中文分词小实验

分词对于搜索引擎,输入法输入提示,语音识别等其它人机交互系统等都很有用.互联网的海量信息为分词研究提供了大量的,动态更新的原始资料库.很多互联网公司都有基于互联网内容的分词系统.并且采用HADOOP等分析大量数据.这些听上去很高大上,但是仔细想想基本原理应该是比较容易理解的,我们每个程序员也很容易可以研究这个领域.所以做了一个简单的POC实验. 首先写一个Spider,从互联网页面抓取内容.因为只是简单实验,我只抓取一个页面,没有做递归抓取链接页面.抓取内容过滤掉HTML标签留下纯文本. 第二部

IO重定向与小实验

IO重定向与小实验 标准输入和输出 IO重定向 tr.tee命令与管道 首先说一下什么是I/O重定向,所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本的输出,然后把捕捉到的输出,作为输入发送给另外一个文件,命令,程序,或者脚本. 如果谈到I/O重定向,就涉及到文件标识符,在Linux系统中,系统为每一个打开的文件指定一个文件标识符以便系统对文件进行跟踪,文件标识符是一个数字,不同数字代表不同的含义,默认情况下,系统占用了3个,分别是0标准输入(stdin),1标准

用梯度下降做点小实验

赶在国庆回家前做点小实验== 利用梯度下降法去拟合任意你想拟合的东西,哈哈 自己想出来的曲线: 目标函数: 其中: , 然后计算迭代式: 其中: k表示第k次迭代, 至此,有了梯度方向就可以计算啦,附上c++代码: #include<iostream> #include<vector> #include<ctime> using namespace std; int main() { //产生数据 srand(time(NULL)); vector<vector&

lamp综合小实验

lamp综合小实验 <font color=red>禁止转载,禁止搬运</font> 遇到的问题: 一.浏览器打不开blog.jd.com:已经配置DNS,最终原因:这个图形化的CentOS7使用dncp获取的ip,DNS也获取的网关:解决:固定IP,手动设置DNS,并确认/etc/reslov.conf 二.NFS权限问题php对NFS目录没有写权限:最终解决:php是以apache运行的,NFS那边也创建个一模一样的apache并对/data/wordpress设置acl权限

DCDC纹波小实验

关于使用示波器测试纹波的注意事项 使用示波器的AC耦合方式测量 由于示波器的头套容易引人噪声,因此在测试前必需把探头的头套去掉 因为电源的高频噪声很容易通过小电感就可以滤掉,因此更关心的是中低频的噪声.测试时将示波器的带宽限制调到尽可能的低(20MHz),避免从表笔引入噪声(我之前就吃过这方面的亏) DCDC后端接LDO AMS1117-5V的Datasheet上要求的最低压差(VIN-VOUT)为1.1V到1.25V,这就要求输入要大于5V+1.1V=6.1V,如果输入不满足这个条件会怎么样呢

初识句柄操作(控制台窗口小实验)

今日学习了控制台使用句柄操作的方法. 我们都知道,使用iostream也可以向屏幕中输出语句. 但它们只能实现基本的输入输出 操作,对于控制台窗口界面的控制却无能为力,而且不能与stdio.h和conio.h友好相处,因为iostream和它们是C++两套不同的输入. 因此,我们需要句柄类来帮助我们完成这个操作. 下面直接上练习小代码,为贪食蛇清屏的小片段. 经一番查找,习得基本用法. 1 void clrscr(void) { 2 //控制台窗口信息类型 存有缓冲区大小 当前光标位置 窗口显示

留言本小实验

实验目的: 利用PHP实现发布留言,并存在txt文本文件中,还可以从文本文件中读取留言,并显示在网页上. 实验代码: 先要用个表单提交留言,写一个简单的html如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2 <html xmlns="http://www

Session小案例-----简单购物车的使用

Session小案例-----简单购物车的使用 同上篇一样,这里的处理请求和页面显示同样用的都是servlet. 功能实现如下: 1,显示网站的所有商品 2,用户点击购买后,能够记住用户选择的商品 3,实现了多个会话共享一个session 4, 实现了浏览器禁用cookie后数据共享问题的处理 首页: package cn.itcast.shopping; import java.io.IOException; import java.io.PrintWriter; import java.io

[小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)

[小细节,大BUG]  1. 在不久前,一个朋友出现了这样一个BUG:当UITableView加载cell的时候,自定义的cell,怎么显示,里面的文字总是显示不完全(注意,文字不长).然后,我帮忙给看了下,甚至把在storyBoard中将cell的相关属性都试了下,虽然可以解决,但是效果不理想.最终经过排查,终于发现问题所在:当自定义cell时,因为需要布局子控件,所以他重写了layoutSubviews方法,然而在此方法中没有调用[super layoutSubviews],所以造成了布局混

ES6小实验-let和const(2)

继续小实验,上次写到块级作用域,那么为什么需要块级作用域呢?书中给了两个场景: 1.没有块级作用域,内层变量可能会覆盖外层变量.举例: var tmp = new Date() function f() { console.log(tmp) if(false) { var tmp = "hello world" } } f();//undefined 内层的tmp变量把外层的tmp变量覆盖,所以输出结果为undefined 2.用来计数的循环变量泄露为全局变量,举例: var s =