python入门练习题2
1,制作表格
循环提示用户输入:用户名,密码,邮箱(要求用户输入的长度超过20个字符,如果超过则只有前20个字符有效)
如果用户输入q或Q就退出程序,将用户输入的内容以表格形式显示
user_input = None #用户名的初始值
pwd = None #密码的初始值
email = None #邮箱地址的初始值
public = None #公共变量名初始值
flag = False #标志位
while not flag: #当flag不为False时,就执行以下代码块
print('温馨提醒:如果需要退出程序请按"q"或"Q"退出')
public = input('请输入你的用户名:') #提示用户输入用户名
if len(public) <= 20: #但是用户输入的长度小于或者等20个字符时,就先什么都不执行
pass
else:
public = public[:20] #但是用户输入的长度大于20个字符时,就取字符串中的前20个字符
if public.lower() != 'q': #如果用户输入的字符串中不包含q时,就将用户输入的值赋值给user_inpput
user_input = public
else:
flag = True #如果用户输入的字符串中包含q时,flag标记位就为真,,用户输入的字符串中包含q时,用户输入q时就可以退出程序
break
public = input('请输入你的密码:')
if len(public) <= 20:
pass
else:
public = public[:20]
if public.lower() != 'q':
pwd = public
else:
flag = True
break
public = input('请输入你的邮箱地址:')
if len(public) <= 20:
pass
else:
public = public[:20]
if public.lower() != 'q':
email = public
else:
flag = True
break
user_output = '''
name\tpassword\temail
%s\t%s\t%s
'''%(user_input,pwd,email)
print(user_output.expandtabs(20)) ##########结果输出################ 温馨提醒:如果需要退出程序请按"q"或"Q"退出
请输入你的用户名:laiying
请输入你的密码:123
请输入你的邮箱地址:123@qq.com
温馨提醒:如果需要退出程序请按"q"或"Q"退出
请输入你的用户名:q name password email
laiying 123 123@qq.com
2.实现一个整数加法计算器
如:content = input('请输入内容:') #5+9 或 1+3
sum1 = 0 #求和的初始值
user_input = input('请输入你要计算的数字:').split('+') #提示用户的输入,并将用户的输入以+号进行分割
for item in user_input: #迭代每一个用户输入的元素
if item.isdigit(): #如果用户输入的是一个数字
user_input = int(item) #将用户输入的数字转换为int类型,并将转换后的值赋值给user_input
sum1 += user_input #用户每迭代一次,就将用户输入的元素加一次,以此类推
else: #如果用户输入的不是一个整数就给用户一个提示并退出程序
print('您输入的不是数字,程序退出')
break
else:
print(sum1) #打印求和的值 ###################结果输出################## #请输入你要计算的数字:6+10
#
3.分页显示
提示用户 请输入要查看的页码,当用户输入指定页码,则显示指定数据
注意:
- 每页显示 10 条数据
- 用户输入页码是非十进制数字,则提示输入内容格式错误
page = [] # 页码初始列表
per_numbers = 10 # 每一页显示的数据量
total_numbers = 301 # 总条数
flag = False
pages = divmod(total_numbers,per_numbers) # 页数,计算能够有多少页
if pages[1] != 0: # 如果总条数不能和每一页的条数整除
pages = pages[0] + 1 # 就取它们的余数加1,将剩余的条数作为一页
else:
pages = pages[0] # 如果总条数能和每一页的条数整除,就直接得到页数
for i in range(1,302): # 进行for循环,生成数据
14 page.append(i) # 将 for循环生成的数据追加到页码的初始列表中
print("1,2,3...共31页\n温馨提示:退出程序请按q")
while not flag:
user_input = input("请输入您需要查看的页码:")
if user_input.isdigit(): # 判断用户输入的是否为数字
user_input = int(user_input) # 将用户输入的数字转换为int类型
if user_input <= pages: # 如果用户输入的页码数是在页码范围内,
# 通过用户输入的页码,计算出切片的起始位置和结束位置,就显示该页码内的内容
print(page[user_input*per_numbers-per_numbers:user_input*per_numbers])
else:
print("您输入的页码错误,请从新输入!")
elif user_input == 'q': # 如果用户输入q就退出
flag = True
break
else:
print("您输入的内容格式错误!!!请从新输入!!!")
4.利用 for 循环和 range 输出 9 * 9 乘法表
sum_number = "{}*{}={}"
a = None
for i in range(1,10):
for item in range(1,i+1):
a = item * i
print(sum_number.format(item, i, a), end='\t')
print()
5.用 Python 开发程序自动计算方案:
公鸡 5 文钱一只,母鸡 3 文钱一只,小鸡 3 只一文钱,用 100 文钱买 100 只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母
鸡,小鸡要买多少只刚好凑足 100 文钱?
for g in range(1,100//5): # 公鸡最多能买的只数
for m in range(1, 100//3): # 母鸡最多能买的只数
for x in range(1, 100): # 小鸡最多能买的只数
if g+m+x == 100 and g*5 + m*3 + x*(1/3) == 100: # 如果公鸡+母鸡+小鸡等于100只
# 并且公鸡的钱数加母鸡的钱数加小鸡的钱数等于100文,就可以得到100文可以买多少只鸡了
print("公鸡%s,母鸡%s,小鸡%s"%(g,m,x))
6.购物车
功能要求:
要求用户输入总资产,例如: 2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
] total_assets = 2000 # 用户总资产
shopping_list = [] # 初始化用户购物列表
price = 0 # 用户购买总金额初始值
flag = False # 定义一个标志位
for i in enumerate(goods):
print(i)
user_assets = int(input("请输入您的总资产:"))
while not flag:
user_input = input("请根据商品序号选择您要购买商品:")
if user_input.isdigit():
user_input = int(user_input)
for i in enumerate(goods):
if user_input == i[0]: # 如果用户输入的是商品序号等于商品序号
shopping_list.append(i[1]["name"]) # 通过切片的方式将商品序号对应的商品追加到购物列表中
price += i[1]["price"] # 计算用户购买商品的总金额
total_assets -= price # 计算出用户的余额
if total_assets < 0:
print("您的余额不足,不能在购买商品,谢谢惠顾!")
flag = True
break
else:
print("您选购的商品为: %s" % shopping_list)
print("用户余额:", total_assets)
else:
print("错误的输入,请输入商品对应的序号")
6.输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
a. 允许用户添加商品
b. 用户输入序号显示内容
li = ["手机","电脑",'鼠标垫','游艇']
for item in enumerate(li):
print(item)
user_input = input("请输入您购买产品对应的序号:")
if user_input.isdigit():
user_input = int(user_input)
for i in enumerate(li):
if user_input == i[0]:
print("您选择的商品为:",i[1])
while True:
print("温馨提示:添加商品请按q,进行添加如果你要退出程序请按y")
user_input = input("请输入您的操作:")
if user_input == 'q':
user = input("请输入你需要添加的商品名称:")
li.append(user)
if user_input == "y":
break
else:
print("请输入产品对应的序号(数字)")
print(li)
7.元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个 key 中,将小于 66的值保存至第二个
key 的值中。
即: {'k1': 大于 66 的所有值, 'k2': 小于 66 的所有值}
li = [11,22,33,44,55,66,77,88,99,90]
dic = {"k1":[],"k2":[]}
for item in li:
if item > 66:
dic["k1"].append(item)
elif item < 66:
dic["k2"].append(item)
else:
pass
print(dic) #{'k2': [11, 22, 33, 44, 55], 'k1': [77, 88, 99, 90]}
python入门练习题2的更多相关文章
- python入门练习题1
常见python入门练习题 1.执行python脚本的两种方法 第一种:给python脚本一个可执行的权限,进入到当前存放python程序的目录,给一个x可执行权限,如:有一个homework.py文 ...
- python入门练习题3(函数)
1.写函数: 如有以下两个列表 l1 = [...] l2 = [] 第一个列表中的数字无序不重复排列,第二个列表为空列表 需求: 取出第一个列表的最小值 放到第二个列表的首个位置, 取出第一个列表的 ...
- python入门练习题
1.使用while循环输入 1 2 3 4 5 6 8 9 10 num = 1 while num<=10: if num ==7: num += 1 continue print(n ...
- 一、python入门练习题
题目: 练习1:华氏温度转摄氏温度. 练习2:输入圆的半径计算计算周长和面积. 练习3:输入年份判断是不是闰年. 答案: 练习1: """ 将华氏温度转换为摄氏温度 F ...
- 老鸟的Python入门教程
转自老鸟的Python入门教程 重要说明 这不是给编程新手准备的教程,如果您入行编程不久,或者还没有使用过1到2门编程语言,请移步!这是有一定编程经验的人准备的.最好是熟知Java或C,懂得命令行,S ...
- Python入门到精通学习书籍推荐!
1.Python基础教程(第2版 修订版)<Python基础教程(第2版修订版)>包括Python程序设计的方方面面,内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合 ...
- Python学习 之 Python入门
第二章 Python入门 2.1 环境安装 2.1.1 下载解释器: py2.7.16 (2020年官方不再维护) py3.6.8 (推荐安装) 1.下载解释器一定去官网下载,https://www. ...
- 大爽Python入门教程 2-3 字符串,列表,字典
大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...
- 6 小时 Python 入门
6 小时 Python 入门 以下操作均在 Windows 环境下进行操作,先说明一下哈 一.安装 Python 1.官网下载 Python 进入官网(https://www.python.org), ...
随机推荐
- WinForm timer控件
timer 控件:按用户定义的时间间隔引发的事件 属性: Enabled 是否启用: Interval 事件发生的事件间隔,单位是毫秒 事件只有一个:Tick 事件经过指定的时间间隔 ...
- js原型对象与Java类的比较
在我学习Javascript的原型对象时,我总是不自觉地拿Java的类思想来做比较,时间久了,我渐渐认识到二者有巨大的不同. 首先,类是不能直接当方法来运行,它最简便的方式是调用其静态方法:而原型对象 ...
- 【HDU2196 Computer】经典树形dp
http://acm.hdu.edu.cn/showproblem.php?pid=2196 题意:有n台电脑相连,让你求每台电脑与离它最远的那台电脑的距离. 思路:两遍搜索即可,第一遍从上到下,第二 ...
- 使用plupload做一个类似qq邮箱附件上传的效果
公司项目中使用的框架是springmvc+hibernate+spring,目前需要做一个类似qq邮箱附件上传的功能,暂时只是上传小类型的附件 处理过程和解决方案都需要添加附件,处理过程和解决方案都可 ...
- css - float浮动模块的高度问题 解决方案
当一个Div中的子元素都是浮动元素时,该div是没有高度的.通常会带来很多困扰,解决方案如下: 低版本统配兼容: overflow: hidden; 下面是不支持低配浏览器,而且似乎该效果对 P 标签 ...
- demo工程的清单文件及activity中api代码简单示例
第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...
- MyEclipse安装lombok
1. 将lombok.jar复制到myeclipse.ini所在的文件夹 2. 打开myeclipse.ini,插入以下两行: -Xbootclasspath/a:lombok.jar-javaage ...
- Unity学习疑问记录之正交与透视
Unity中相机的投影是2种方式,正交和透视 这是透视方式 正交方式: //计算屏幕宽度 float height = 2.0f * Camera.main.orthographicSize;//正交 ...
- ThinkPHP 3.2.3 多模块 和 多应用 的配置
多模块 在 ThinkPHP 3.2.3 中,默认的应用目录是 ./Application,下面的默认模块是 Home 模块,如果此时需要添加一个 Admin 模块用于后台应用,根据手册 http:/ ...
- Java初始化生命周期
package com.init; abstract class Glyph { void draw() { System.out.println("Glyph.draw()"); ...