目录
关联文章
一、登录银行系统并显示余额(登录、注册功能)
二、将字符串处理成key:value或json格式
三、计算“斐波那契数列”个数
四、登录、注册功能
五、字符串的消除(如‘aabbcc’,消除‘ab’)
六、计算“100-1000的水仙花数”
七、用递归的方法求出n的阶乘?
八、有如下url地址截取出来,并将参数以"key value"的键值形式保存起来
《第六部分:6.1-Python之基本操作+Python常见的运算》
《第六部分:6.2-Python之字符-元组-字典-列表》
《第六部分:6.3-Python之判断-三目-循环》
《第六部分:6.4-Python之函数-定义和使用》
《第六部分:6.5-Python之模块-定义和使用》
《第六部分:6.6-Python之类与对象-定义和使用》
《第六部分-练习题1:列表-字典-循环练习(10道题)》
《第六部分-练习题2:使用递归-模块-自定义函数(8道题)》
《第六部分-练习题3:使用open()函数处理文件(3道题)》
《第六部分-练习题4:random函数生成随机数(3道题)》
《第六部分-练习题5:re正则使用统计行数-判断手机号(4道题)》
#需求:登录银行系统并显示余额,有两个功能第一个是登录,第二个是登录后显示余额,
#(1)先登录然后根据登录是否成功然后是否显示余额。
#分析思路:如果想查询到余额,前提必须登录,所以现在我们用两个函数来处理,
# 第一个函数实现登录,第二个函数实现余额查询,调用第一个函数得到的结果给第二个函数,
#然后第二个函数根据结果进行代码处理。
#'账号:admin、密码:123456'
# ---------------------------------------------------------------------------(1)
def login(name):
if name=='':
name=input('请输入用户名:')
if name=='admin':
password=input('请输入密码:')
if password=='123456':
print('登录成功-------------')
showBalance(True)
else:
print('密码错误、请重新输入密码\n')
login(name)
else:
print('用户错误,请重新输入\n')
login('')
else:
password=input('请输入密码:')
if password=='123456':
print('登录成功-------------')
showBalance(True)
else:
print('密码错误、请重新输入密码\n')
login(name)
def showBalance(isLogin):
if isLogin:
balance=999.99
print('您的账户余额为:{}元'.format(balance))
# #调用登录方法
login('')
#(2)将字符串类似:“k:1|k3:2|k2:9|...|kn:m”,处理成key:value或json格式
# 比如:{"K":"1","K3":"2"}
# ----------------------------------------------------------------------(2)
def creatDict(strValue):
result={}
for i in strValue.split('|'):
if(i!=''):
result.setdefault(i.split(':')[0],i.split(':')[1])
return result
# #调用方法
# #输入格式:k:1|k3:2|k2:9|
print(creatDict(input('请输入需要转换成字典格式的内容:')))
# (3)分析以下数字的规律:1 1 2 3 5 8 13 21 用python语言变成实现输出,保存在列表当中
# 斐波那契数列(前两个数相加等于第三个数):根据规律 1+1=2 2+1=3 2+3=5 3+5=8....
# ------------------------------------------------------------------------------(3)
def fibonacci(number):
result=[]
#(1)先判断输入的格式是否正确:正确走下一步,错误重新输入
try:
number=int(number)
for i in range(number+1):
if i==0 :
result=[]
elif i==1 or i==2:
result.append(1)
else:
result.append(result[i-3]+result[i-2])
return result
except:
print('------格式错误,请输入整型------')
return fibonacci(input('请重新输入:'))
# #调用方法
print(fibonacci(input('请输入显示斐波那契数列的个数:')))
#(4)先定义一个字典存放用户名和密码,如dic = {'admin':'123456','dcs05':'654321'}
# 要求如下:
#1、从字典中获取用户完成登录,登录时判断用户是否存在,存在则直接登入
#2、如果输入的登入用户判断不存在字典内,则调用注册方法,完成该用户的注册,注册完成后写
#入字典定参义登录函数
# -------------------------------------------------------------------------(4)
dic = {'admin':'123456','dcs05':'654321'}
def login(name):
if name=='':
name=input('请输入登录名:')
password=input('请输入登录密码:')
#(1.1)先判断用户是否存在(存在:则判断密码;不存在:询是否注册)
if dic.get(name)!=None:
if password==dic.get(name):
print('登录成功!')
else:
print('密码重新输入,请重新登录\n')
login('')
else:
vaule=input('用户不存在,是否进行注册(是:进入注册;否:重新登录):')
if vaule=='是':
rigisration(True)
elif vaule=='否':
login('')
else:
print('输入格式有误,重新登录!\n')
login('')
def rigisration(value):
if bool(value):
name=input('请输入用户名:')
password=input('请输入密码:')
passwordEgin=input('请再次确认密码:')
#(1.1)判断用户是否存存在
if dic.get(name)!=None:
print('用户存在,请重新注册\n')
rigisration(True)
#(1.2)判断两次密码是否一致(一致则注册成功,不一致重新注册)
elif password!=passwordEgin:
print('两次密码不一致,请重新注册\n')
rigisration(True)
else:
dic.setdefault(name,password)
print('注册成功!请重新登录。\n')
login('')
elif bool(value):
login('')
# #调用登录方法
login('')
# (5)用字符串"aabbcdbaaabc",用你熟悉的语言实现去除"ab"字符
3(两个参数,一个字符串,一个需要去除的字符)
# ---------------------------------------------------------------------(5)
str1='aabccbcdbaaabc'
str2='ab'
def removeStr(string,remove):
for i in string:
#问题:去除之后得到的值,如果还存在,则继续去除
string=string.replace(remove,'')
return string
#调用函数
print(removeStr(str1,str2))
# (6)水仙花数:一个三位数,其按位立方之和等于该数本身该数称为水仙花数,
# 求出100-1000之间的水仙花数
# (其实,水仙花数是"自幂数"中的一种:自幂数:一个n位数,其按位数字的n次方之和等于该数本身)
#(例如:153=1*+3+5**3+3**3)
# -------------------------------------------------------------------------------(6)
#方法一:
def shuiXianHua(startNum,endNum):
resultList=[]
for i in range(startNum, endNum+1):
sum=0
for j in list(str(i)):
sum=sum+(int(j)**3)
if sum==i:
resultList.append(i)
return resultList
#调用函数
print(shuiXianHua(100,1000))
#方法二:
list1=[]
def shuiXianHua2():
for i in range(1,10):
for j in range(0,10):
for k in range(0,10):
if i**3+j**3+k**3 == i*100+j*10+k:
x =(i*100+j*10+k)
list1.append(x)
#调用函数
print(shuiXianHua2())
# (7)用递归的方法求出n的阶乘?4的阶乘结果为?
# ----------------------------------------------------------------------------(7)
def jieCheng(num):
try:
newNum=int(num)
if newNum == 0 or newNum == 1:
return 1
else:
return newNum*jieCheng(newNum-1) #递归类似嵌套似方法
except:
print('\n------格式错误,请输入整型------')
return jieCheng(input('请重新输入(需为整型):'))
#调用方法
print(jieCheng(5))
# (8)有如下url地址,要求实现截取出"?"号后面的数,并将参数以"key value"的键值形式保存起来
#并最终通过get(key)的方式取出对应的value的值。
#url地址如下:http://ip:port/extername/get_account_trade_record.json ?page_size=20&page_index=1&user_id=203317&trade_type=0
# -------------------------------------------------------------------------------(8)
string1='http://ip:port/extername/get_account_trade_record.json ?page_size=20&page_index=1&user_id=203317&trade_type=0'
def urlDict(url):
list1=url.split('?')[1].split('&')
resultDict1={}
for i in list1:
resultDict1.setdefault(i.split('=')[0],i.split('=')[1])
return resultDict1
# #调用函数
print(urlDict(string1))