一、格式化输出

按要求输出信息
name=input("name:")
age=int(input("age:"))
job=input("job:")
salary=input("salary:") if salary.isdigit(): #长得像不像数字,比如200d,‘200’
salary=int(salary)
else:
exit("must input digit!") msg='''
---------info of %s-------------
Name: %s
Age: %d
Job: %s
Salary: %f
You'll retire in %s years.
-----------end------------------
'''%(name,name,age,job,salary,65-age)
print(msg)

二.循环

登录三次,不成功打印error

(1)for循环

#passed_authentication=False
for i in range(3):
username=input("username:")
passwd=input("password:")
if username=="admin" and passwd=="admin":
# passed_authentication=True
print("Welcome!")
break #跳出,中断 break for后就不会执行后面的else语句
else:
print("try again!")
else: #只要上面的循环正常执行完毕,中间没被打断,就会执行else语句
#if not passed_authentication:
print("error!")

(2)while循环

counter=0
while counter<3:
username=input("username:")
passwd=input("password:")
if username=="admin" and passwd=="admin":
print("Welcome!")
break #跳出,中断 break for后就不会执行后面的else语句
else:
print("try again!")
counter += 1
if counter==3:
keep_going_choice=input("还想玩吗?[y/n]")
if keep_going_choice=='y':
counter=0
else:
print("error!")

三、练习(购物车程序)

goods_list=[('iphone',6000),('mac',9000),('coffee',32),('python book',100),('bicycle',1500)]
#print(len(goods_list))
cart=[]
saving=input("please input your saving:")
if saving.isdigit():
saving=int(saving)
while True:
# 打印商品内容
for i,v in enumerate(goods_list,1): #for后面可以接列表、元祖、字典
print(i,v)
# 引导用户选择商品
choice=input("请输入您要购买的商品序号[退出:q]:")
# 验证输入是否合法
if choice.isdigit():
choice=int(choice)
if choice > 0 and choice <= len(goods_list) :
# 通过choice取出用户选择的商品
p_item=goods_list[choice-1]
print(p_item)
# 如果余额充足,用余额减去选择的商品的价格,并将该商品加入购物车
if p_item[1] < saving:
saving-=p_item[1]
print('还剩%s元'%saving)
cart.append(p_item)
else:
print('余额不足,还剩%s元'%saving)
else:
print('编码不存在!')
elif choice=='q':
print('-----您已经购买如下商品------')
# 循环遍历购物车的商品,注意:购物车存放的是已买商品
for i in cart:
print(i)
print('您还剩%s元'%saving)
break
else:
print('非法字符!')
else:
print('error!')

Python之路【第四篇】Python基础2的更多相关文章

  1. python之路第四篇(基础篇)

    一.冒泡算法实现: 方法一: li = [13,33,12,80,66,1] print li for m in range(4): num1 = li[m] num2 = li[m+1] if nu ...

  2. 【Python之路】第九篇--Python基础之线程、进程和协程

    进程与线程之间的关系 线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除.线程可与属于同一进程的其它线程共享进程所拥有的全 ...

  3. Python之路第四天,基础(4)-装饰器,迭代器,生成器

    装饰器 装饰器(decorator)是一种高级Python语法.装饰器可以对一个函数.方法或者类进行加工.在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象 ...

  4. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  5. Python之路(第四篇):Python基本数据类型列表、元组、字典

    一.列表 1.列表 list ,是一个类,li = [1,2,"nicholas"] li是通过list类创建的对象. 2.list特点: 用中括号括起来,用逗号分割每个元素,列表 ...

  6. Python之路(第八篇)Python内置函数、zip()、max()、min()

    一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...

  7. Python之路(第五篇) Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

  8. 【Python之路】特别篇--Python正则表达式

    正则表达式的基础 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大. 得益于这一点 ...

  9. 【Python之路】特别篇--Python面向对象(进阶篇)

    上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  10. Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

    一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...

随机推荐

  1. mysql学习笔记--遇到的坑

    一.navcat 连接不支持密码输入 1. 先通过命令行进去mysql的root账户 mysql -uroot -p'password' 2. 更改加密方式 alter user 'root'@'lo ...

  2. 微信小程序发布新版本时自动提示用户更新

    如图,当小程序发布新的版本后,用户如果之前访问过该小程序,通过已打开的小程序进入(未手动删除),则会弹出这个提示,提醒用户更新新的版本.用户点击确定就可以自动重启更新,点击取消则关闭弹窗,不再更新. ...

  3. 关于easyui框架中a标签使用onclick()触发事件偶尔会选项卡消失BUG解决方案

    今天发现公司的一个easyui项目中有个页面会在触发onclick事件时选项卡消失,如下图 产生BUG后 产生BUG前 查找很多地方还有资料不知道哪里出现的问题,看了下框架源码之类的,因为不是专门的前 ...

  4. systemd 编写服务管理脚本---学习

    转载:https://www.cnblogs.com/sparkdev/p/8521812.html 我们运行 linux 服务器的主要目的是通过运行程序提供服务,比如 mysql.web serve ...

  5. ubuntu16.04安装Navicate

    1.   http://download2.navicat.com/download/navicat100_mysql_en.tar.gz 2.   tar -zxvf  /home/rain/dow ...

  6. Qt跨平台开发Wince5.0和Android程序

    所谓跨平台是指维护一份代码,可编译出多平台的应用程序.Qt这方面虽然已经做的不错,但性能还是体验,和原生开发工具开发的程序相比,差距还是不小的.但单从生产应用的角度来说,可以采用,不失为一种好的解决方 ...

  7. oracle sql语句大全

    ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约 ...

  8. Mysql必知必会 第一章 了解SQL

    第一章 了解SQL 1.1 数据库基础 1.1.1 什么是数据库 数据库的定义:保存有组织的数据的容器 数据库软件不是数据库,而是DBMS 1.1.2 表 表(Table)的定义:某种特定类型数据的结 ...

  9. 大白书中无向图的点双联通分量(BCC)模板的分析与理解

    对于一个无向图,如果任意两点至少存在两条点不重复(除起点和终点外无公共点)的路径,则这个图就是点双联通. 这个要求等价于任意两条边都存在于一个简单环(即同一个点不能在圈中出现两次)中,即内部无割点. ...

  10. eclipse创建scrapy项目

    1. 您必须创建一个新的Scrapy项目. 进入您打算存储代码的目录中(比如否F:/demo),运行下列命令: scrapy startproject tutorial 2.在eclipse中创建一个 ...