Python入门代码练习
一、循环猜年龄程序,猜错三次则打印提示信息并退出循环,猜对也打印提示信息并退出循环
count=0
while count < 3:
num = input("猜年龄游戏:")
guess = int(num)
if guess == 18:
print("恭喜你猜对了")
break
elif guess > 18:
print("大了")
elif guess < 18:
print("小了")
count += 1
else:
print("猜了三次都没猜对'")
二、写while循环嵌套的小例子,用一个tag控制所有while循环的退出
tag=True
while tag:
inp_name=input("name>>")
inp_pwd=input('password>>')
if inp_name == "username" and inp_pwd == "password":
print('login successfull')
while tag:
cmd=input('cmd>>>')
if cmd == 'quit':
tag=False
continue
print('%s 命令整在执行...' %cmd)
else:
print('user or password not vaild')
三、用户注册程序
基本功能实现一
ps:使用手机号码做账户
menu=['新用户注册','查看账户信息','退出程序']
while True:
for i in range(len(menu)): #打印功能menu菜单
print(i, menu[i])
choice=input("选择编号>>>:").strip()
if choice =='': #判断用户选择的功能是'新用户注册'
number=input('请输入你的手机号码>>>:').strip()
uname=input('请输入用户名>>>:').strip()
passwd=input('请输入密码>>>:').strip()
age=input('请输入你的年龄>>>:').strip()
sex=input('请输入你的性别>>>:').strip()
with open('db.txt',mode='a',encoding='utf-8') as f: #创建一个存在用户信息的文件
f.write('%s,%s,%s,%s,%s\n' %(number,uname,passwd,age,sex)) #把用户输入的注册信息写入文件中
elif choice == '': #判断用户选择的功能是'查看账户信息'
number=input('请输入你的手机号码>>>:').strip() #让用户输入手机号码
with open('db.txt',mode='r',encoding='utf-8') as f:
for i in f:
if i.startswith(number): #判断用户输入的账号是否存在
print(i,end='') #打印该账号详细信息
break #退出此循环
elif choice == '': #功能2'退出程序'
print('退出程序')
break
else: #以上条件不满足,让用户信息输入!
print('输入非法数据,请重新输入!!!')
功能实现二
#查看用户信息,增加密码认证功能
menu=['用户注册','查看账户信息','退出程序']
tag=True
while True:
for i in range(len(menu)):
print(i, menu[i])
choice=input("选择编号>>>:").strip()
if choice =='':
print('用户注册')
number=input('请输入你的手机号码>>>:').strip()
uname=input('请输入用户名>>>:').strip()
passwd=input('请输入密码>>>:').strip()
age=input('请输入你的年龄>>>:').strip()
sex=input('请输入你的性别>>>:').strip()
with open('db.txt',mode='a',encoding='utf-8') as f:
f.write('%s,%s,%s,%s,%s\n' %(number,uname,passwd,age,sex))
elif choice == '':
tag=True
while tag:
number=input('请输入你的手机号码>>>:').strip()
with open('db.txt',mode='r',encoding='utf-8') as f:
for i in f:
if i.startswith(number):
while tag:
check=i.split(',')
uname=input('请输入用户名>>>:').strip()
passwd=input('请输入密码>>>:').strip()
if uname == check[] and passwd == check[]: #判断用户密码,用户密码输入不正确时,让用户重新输入
print(check)
tag=False
else:
print('账号密码错误!!!')
elif choice == '':
print('退出程序')
break
else:
print('输入非法数据,请重新输入!!!')
功能实现三
ps:增加账号是否已被注册功能
menu=['用户注册','查看账户信息','退出程序']
tag=True
while True:
for i in range(len(menu)):
print(i, menu[i])
choice=input("选择编号>>>:").strip()
if choice =='':
while tag:
number=input('请输入你的手机号码>>>:').strip()
with open('db.txt',mode='r',encoding='utf-8') as f: #注意:使用r模式打开db.txt,db.txt文件不存在会报错
for i in f:
if i.startswith(number):
print('该账号已被注册,请重新输入!!!')
break
uname=input('请输入用户名>>>:').strip()
passwd=input('请输入密码>>>:').strip()
age=input('请输入你的年龄>>>:').strip()
sex=input('请输入你的性别>>>:').strip()
with open('db.txt',mode='a',encoding='utf-8') as f:
f.write('%s,%s,%s,%s,%s\n' %(number,uname,passwd,age,sex))
break
elif choice == '':
tag=True
while tag:
number=input('请输入你的手机号码>>>:').strip()
with open('db.txt',mode='r',encoding='utf-8') as f:
for i in f:
if i.startswith(number):
while tag:
check=i.split(',')
uname=input('请输入用户名>>>:').strip()
passwd=input('请输入密码>>>:').strip()
if uname == check[] and passwd == check[]:
print(check)
tag=False
else:
print('账号密码错误!!!')
elif choice == '':
print('退出程序')
break
else:
print('输入非法数据,请重新输入!!!')
四、购物车程序
用户名和密码存放于文件中,格式为:aaa|bbb123
启动程序后,先登录,登录成功则让用户输入工资,然后打印商品列表,失败则重新登录,超过三次则退出程序
允许用户根据商品编号购买商品
用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
可随时退出,退出时,打印已购买商品和余额
menu=['新用户注册','登录商城','退出程序']
goods=[
['mac',],
['lenovo',],
['apple',],
['tesla',],
] shopping_cart=[ ] tag=True
while True:
for i in range(len(menu)):
print(i, menu[i])
choice=input("选择编号: ").strip()
if choice == '':
while tag:
user_number=input('请输入你的手机号码: ').strip()
with open(r'db.txt',mode='r',encoding='utf-8') as read_db_f: #模式r模式打开,db.txt文件不存在会报错
for i in read_db_f:
if len(user_number) != or user_number in i: #文件内容为空时会让重复输入手机号码,文件数据类型为 12345678901|18|hello|male
print('该账户已被注册,请重新输入一个11号码!')
break
else:
passwd=input('请输入密码: ').strip()
age=input('请输入你的年龄: ').strip()
sex=input('请输入你的性别: ').strip()
with open('db.txt',mode='a',encoding='utf-8') as f:
f.write('%s|%s|%s|%s\n' %(user_number,passwd,age,sex))
tag=False
break
elif choice == '':
tag=True
while tag:
user_number=input('请输入你的手机号码: ').strip()
with open('db.txt',mode='r',encoding='utf-8') as f:
for i in f:
if i.startswith(user_number):
check=i.split('|')
passwd=input('请输入密码: ').strip()
if user_number == check[] and passwd == check[]:
price=
print('当前账户余额: ',price)
while tag:
salary=input('余额不足请充值: ')
if not salary.isdigit():
print('输入非法数据,请重新输入!!!')
continue
salary=int(salary)
price=salary+price
print('充值成功,当前余额为:',price)
for i in range(len(goods)):
print(i,goods[i])
while tag:
number=input('根据商品编号购买该商品: ')
if number == '':
if price >= goods[][]:
prcie=price-goods[][]
print('当前余额为: ',price)
shopping_cart.append('%s' %(goods[]))
else:
print('余额不足,无法购买此商品,请先充值!')
break
elif number == '':
if price >= goods[][]:
price=price-goods[][]
print('当前余额:',price)
shopping_cart.append('%s' %(goods[]))
else:
print('余额不足,无法购买此商品,请先充值!')
break
elif number == '':
if price >= goods[][]:
price=price-goods[][]
print('当前余额: ',price)
shopping_cart.append('%s' %(goods[]))
else:
print('余额不足,无法购买此商品,请先充值!')
break
elif number == '':
if price >= goods[][]:
price=price-goods[][]
print('当前余额: ',price)
shopping_cart.append('%s' %(goods[]))
else:
print('余额不足,无法购买此商品,请先充值!')
break
elif number == 'quit':
print('已购买商品:',shopping_cart)
tag=False
else:
print('商品不存在,请重新输入!')
else:
print('账号密码错误!!!')
elif choice == '':
print('退出程序')
break
else:
print('输入非法数据,请重新输入!!!')
五、三级菜单
打印省、市、县三级菜单
可返回上一级
可随时退出程序
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
tag=True
while tag:
for k in menu:
print(k)
choice = input('请选择>>>: ').strip()
if choice in menu:
while tag:
for k2 in menu[choice]:
print(k2)
choice2 = input('请选择>>>: ').strip()
if choice2 in menu[choice]:
while tag:
for k3 in menu[choice][choice2]:
print(k3)
choice3 = input('请选择>>>: ').strip()
if choice3 in menu[choice][choice2]:
for k4 in menu[choice][choice2][choice3]:
print(k4)
choice4 = input('请选择>>>: ').strip()
if choice4 == 'b':
break
elif choice4 == 'quit':
tag=False
elif choice3 == 'b':
break
elif choice3 == 'quit':
tag=False
elif choice2 == 'b':
break
elif choice2 == 'quit':
tag=False
elif choice == 'quit':
tag=False
六、打印九九乘法表
'''
*= #layer= 运算次数1
*= *= #layer= 运算次数2
*= *= *=
...
*
'''
for layer in range(,):
# # print('第%d层' %layer)
for j in range(,layer+):
print('%s*%s=%s ' %(layer,j,layer*j),end='')
print()
七、打印金字塔
'''
#max_layer=
* #current_layer=,space=,star=
*** #current_layer=,space=,star=
***** #current_layer=,space=,star=
******* #current_layer=,space=,star=
********* #current_layer=,space=,star= space=max_layer - current_layer
star=*current_layer-
''' max_layer=
for current_layer in range(,max_layer+):
# print(current_layer)
# 打印空格
for i in range(max_layer - current_layer):
print(' ',end='') # 打印星号
for j in range(*current_layer-):
print('*',end='') print()
七、登录接口
基础需求:
- 让用户输入用户名和密码
- 认证成功后显示欢迎信息
- 输错三次后退出程序并锁定账户
userinfo={
'egon':{'password':'','count':},
'alex':{'password':'','count':},
'wupeiqi':{'password':'','count':},
}
lock_file=[]
count =
while True:
username=input('请输入用户名:').strip()
password=input('请输入密码:').strip()
if username not in userinfo:
print('用户名不存在!')
continue
elif username in lock_file:
print('用户被锁定,请联系管理员!')
print(lock_file)
break
elif userinfo[username]['count'] > :
print('密码输入错误超过三次,%s被锁定,请联系管理员' %username)
print(lock_file)
lock_file.append(username)
elif password == userinfo[username]['password']:
print('登录成功')
break
else:
print('密码错误')
userinfo[username]['count']+=
Python入门代码练习的更多相关文章
- 移动测试之appium+python 入门代码(四)
最近工作中想要做自动化回归测试,想法是将每个测试用例都做自动截图,然后将最近的稳定版本和当前测试的版本的两张截图去对比,也要将两个版本的截图都放到测试报告中方便人工来进行验证.最初想法是通过HTMLT ...
- 移动测试之appium+python 入门代码(二)
ps: 对于环境安装可能会碰到各种问题,还是要一一解决. 执行: appium-doctor 显示上边界面说明,环境已完成. 同时将手机连接主机(用数据线) ^_^ 执行 adb devices 显示 ...
- 移动测试之appium+python 入门代码(三)
在做app自动化过程中会踩很多坑,咱们都是用中文的app,所以首先要解决中文输入的问题!本篇通过屏蔽软键盘,绕过手机的软键盘方法,解决中文输入问题. 一.定位搜索 1.打开淘宝点击搜索按钮,进入搜索页 ...
- python入门(5)使用文件编辑器编写代码并保存执行
python入门(5)使用文件编辑器编写代码并保存执行 两款文本编辑器: 一个是Sublime Text,免费使用,但是不付费会弹出提示框: 一个是Notepad++,免费使用,有中文界面: 请注意, ...
- 2018-06-21 中文代码示例视频演示Python入门教程第五章 数据结构
知乎原链 续前作: 中文代码示例视频演示Python入门教程第四章 控制流 对应在线文档: 5. Data Structures 这一章起初还是采取了尽量与原例程相近的汉化方式, 但有些语义较偏(如T ...
- 2018-06-20 中文代码示例视频演示Python入门教程第四章 控制流
知乎原链 续前作: 中文代码示例视频演示Python入门教程第三章 简介Python 对应在线文档: 4. More Control Flow Tools 录制中出了不少岔子. 另外, 输入法确实是一 ...
- 2018-06-20 中文代码示例视频演示Python入门教程第三章 简介Python
知乎原链 Python 3.6.5官方入门教程中示例代码汉化后演示 对应在线文档: 3. An Informal Introduction to Python 不知如何合集, 请指教. 中文代码示例P ...
- Python 入门之代码块、小数据池 与 深浅拷贝
Python 入门之代码块.小数据池 与 深浅拷贝 1.代码块 (1)一个py文件,一个函数,一个模块,终端中的每一行都是代码块 (代码块是防止我们频繁的开空间降低效率设计的,当我们定一个变量需要开辟 ...
- python入门简介
Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
随机推荐
- 【BZOJ2337】Xor和路径(高斯消元)
[BZOJ2337]Xor和路径(高斯消元) 题面 BZOJ 题解 我应该多学点套路: 对于xor之类的位运算,要想到每一位拆开算贡献 所以,对于每一位拆开来看 好了,既然是按位来算 我们就只需要计算 ...
- 【BZOJ3140】消毒(二分图匹配)
[BZOJ3140]消毒(二分图匹配) 题面 Description 最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为abc,a.b.c 均为正 ...
- [SDOI2013]森林
主席树 离散化后 每个点储存从根到它的路径上的点权 新加边时直接用启发式合并,直接把size小的重构 询问时sum[u]+sum[v]-sum[lca]-sum[fa[lca]]来比较,在树上二分 L ...
- 百度定位一直出现4.9E -324的问题解决方法
问题:华为mate10一直在申请百度定位的时候出现此问题并且定位权限和定位服务都打开的情况也是返回这个参数 明显没有定位成功,其他手机暂时没有出现(只要打开定位权限就会立即定位成功) 解决:在定位之前 ...
- 如何将VMware虚拟机迁移到AWS
在工作中,我们一直在努力将我们的一些VMware工作负载转移到AWS,并且我的任务是将几个VMware虚拟机迁移到AWS,作为暂时的概念验证. 在本文中,我将展示如何设置AWS连接器并使用AWS服务器 ...
- 解决linux安装软件:/lib/ld-linux.so.2: bad ELF interpreter问题
问题:64位系统中安装了32位程序解决办法 是因为64位系统中安装了32位程序 解决方法: yum install glibc.i686
- 值得 .NET 开发者了解的15个特性
本文列举了 15 个值得了解的 C# 特性,旨在让 .NET 开发人员更好的使用 C# 语言进行开发工作. 1. ObsoleteAttribute ObsoleteAttribute 适用于除组件. ...
- vue.js设置、获取、删除cookie
项目需要前端获取后台返回的cookie,并以此作判断.我是在main.js入口文件下使用的 具体代码: new Vue({ el: '#app', router, template: '<App ...
- java 多线程(总结)
今天看了几篇关于java多线程问题的文章,将他们的部分内容引过来总结下,也算是对java多线程这类问题的整理. 在多线程中,必须明白两个问题,一是多线程实现,二是代码同步. 在java中要想实现多线程 ...
- markdown语法小结
引用数学公式1 \[ \begin{equation} \pi^2=x^2+y \label{eq_lab1} \end{equation} \] Here we cite this equation ...