1、自定义函数实现对列表中的数值进行排序
#代码一:通过直接对num赋值的列表:
def psort(num):#输入一个数字串"列表"
x = input("请选择排序方式(升序输入:s,降序输入:r):")
if x == 's':
n = len(num) #计算列表的元素个数
for i in range(n):
for j in range(n-i -1):
if num[j] > num[j+1]:
num[j],num[j+1] = num[j+1],num[j]
#return num
print(num)
if x == 'r':
n = len(num) #计算列表的元素个数
for i in range(n):
for j in range(n-i -1):
if num[j] < num[j+1]:
num[j],num[j+1] = num[j+1],num[j]
#return num
print(num)
psort([12,13,15,117,115,2,13,15])
#代码二:通过input和append()函数获取需要排序的列表:
def psort(num):#输入一个数字串"列表"
x = input("请选择排序方式(升序输入:s,降序输入:r):")
if x == 's':
n = len(num) #计算列表的元素个数
for i in range(n):
for j in range(n-i -1):
if num[j] > num[j+1]:
num[j],num[j+1] = num[j+1],num[j]
#return num
print(num)
if x == 'r':
n = len(num) #计算列表的元素个数
for i in range(n):
for j in range(n-i -1):
if num[j] < num[j+1]:
num[j],num[j+1] = num[j+1],num[j]
#return num
print(num)
while(1):
#psort([12,15,11,222,15,2])
num = []
s = input('请输入数字(数字之间用逗号分割):') #input默认获取的是字符串
for i in s.split(','): #将字符串s通过split以逗号(输入数字必须有逗号才能用逗号分割,split函数分割时,必须字符串已有的字符才行)为分隔符,将字符串s转换成列表
num.append(int(i)) #通过append函数和int函数将字符串转换成整数后,添加到新的列表num中,实现"字符串”列表转成成“整数"列表
psort(num)
#代码三:通过input和eval函数获取需要排序的列表:
def psort(num):#输入一个数字串"列表"
x = input("请选择排序方式(升序输入:s,降序输入:r):")
if x == 's':
n = len(num) #计算列表的元素个数
for i in range(n):
for j in range(n-i -1):
if num[j] > num[j+1]:
num[j],num[j+1] = num[j+1],num[j]
#return num
print(num)
if x == 'r':
n = len(num) #计算列表的元素个数
for i in range(n):
for j in range(n-i -1):
if num[j] < num[j+1]:
num[j],num[j+1] = num[j+1],num[j]
#return num
print(num)
while(1):
#psort([12,15,11,222,15,2])
s = input('请输入数字(数字之间用逗号分割):')
num = s.split(',')
print("逗号分割后列表中的元素带引号'',数字外围带分号,属于'字符串',会影响def函数中的整数计算规则,需要将字符串转换成整数:\n",num)
for i in range(len(num)):
num[i] = eval(num[i]) #eval()函数去掉数字外围的引号'',将字符串列表转换成整数类型列表
print(num)
psort(num)
2、自定义函数实现计算字符串中空格的个数
def count(ls = ''):
sum = 0
for i in ls:
if i == ' ':
sum +=1
else:
continue
print(sum)
ls = input("请输入字符串:")
count(ls)
3、请自定义函数获取所有的超链接。
import re
html1 = '''<h3>contact us</h3>
<p>contact: manager wang</p>
<p>telephone:12345666</p>
<div id="nav">
<ul>
<li><a class="nav-first" href="/">homepage</a></li>
<li><a href="/lista.php">111</a></li>
<li><a href="/lista.php">222</a></li>
<li><a href="/order/setorder.php">333</a></li>
<li><a href="/what/cool/ista.php">444</a></li>
</ul>
</div>'''
def get_url(html):
urls = re.findall('href=.*?>', html) # 正则出a链接 href
urlList = [] # 定义urlList
for url in urls:
url = url.replace("href=\"", '') # 替换href="
urlList.append(url[:-2]) # 获取的0到-2长度的字符串
print(urlList)
get_url(html1)
4、自定义函数实现对用户的登录验证,假设所有用户信息存在列表中,形式如下:
user = [
{‘name’:‘xuab’,‘password’:‘123’,‘usertype’:1},
{‘name’:‘hyc’,‘password’:‘1314’,‘usertype’:2},
{‘name’:‘yq’,‘password’:‘520’,‘usertype’:3},
{‘name’:‘lcz’,‘password’:‘1314520’,‘usertype’:4},
{‘name’:‘yqq’,‘password’:‘520’,‘usertype’:5}
]
验证成功返回用户类型,否则返回0
# -*- coding:utf-8 -*-
user = [
{'name':'hyc','password':'123','usertype':1},
{'name':'ww','password':'1314','usertype':2},
{'name':'qq','password':'520','usertype':3},
{'name':'tx','password':'1314520','usertype':4},
{'name':'ali','password':'520','usertype':5}
]
user_name_list = list(map(lambda name: name['name'],user))
print(user_name_list)
def logcheck():
name_input = input("请输入用户名:")
if name_input in user_name_list:
user_index = user_name_list.index(name_input)
pw_input = input("请输入密码:")
if pw_input == user[user_index]['password']:
print("密码正确,登录成功,欢迎使用python系统")
print("用户类型:你是第%d个用户" % user[user_index]['usertype'])
else:
print('密码错误,错误代码:0')
else:
print('用户未注册,请注册或重新输入:')
while(1):
logcheck()
#多字典元素组成的列表类型
user = [
{'name':'i','password':'i1314','usertype':3},
{'name':'hyc','password':'1314520','usertype':6},
{'name':'love','password':'hyc','usertype':9},
]
name_key = lambda k:k['name']
user_list = []
for dict in user:
print('字典dict是:',dict) #因为字典内嵌在列表中,因此需要通过for循环,获取到"各个字典"
print('字典键key是:',name_key(dict)) #获取字典成功后,通过lambda定义的k['a'],获取a的value值
user_list.append(name_key(dict))
print(user_list) #将获取到的字典value保存到列表:user_list中,应用场景:用户名称的验证
def logcheck():
name_input = input("请输入用户名:")
print(name_input)
if name_input in user_list:
dict_index = user_list.index(name_input) #通过index函数获取“输入用户名”在列表中的序号(位置)
print("输入用户名在第%d个字典组中" %dict_index) #获取字典组的次序,主要用于用户名和密码之间的验证
password_input = input("请输入密码:")
if password_input == user[dict_index]['password']: #user[dict_index]['b'],如在第0个字典里,对应的password是:user[0][password]
print("密码正确,登录成功,欢迎使用python系统")
print("用户类型:你是第%d个用户" % user[dict_index]['usertype'])
else:
print('密码错误,错误代码:0')
else:
print("账号不存在,请重新输入,如账号未注册,请点击注册")
while(True):
logcheck()
代码一致性说明:以下三段代码的功能一样,都是获取name的值,并保存到新列表中
user_list = []
for i in range(len(user)):
print('字典键key是:',user[i]['name']) #通过user[序列]['name']方式,依次获取字典的value值
user_list.append(user[i]['name']) #保存到列表:user_list
print(user_list) #将获取到的每一个字典value保存到列表:user_list中,应用场景:用户名称的验证
===============================================================
name_key = lambda k:k['name']
user_list = []
for dict in user:
print('字典dict是:',dict) #因为字典内嵌在列表中,因此需要通过for循环,获取到"各个字典"
print('字典键key是:',name_key(dict)) #获取字典成功后,通过lambda定义的k['a'],获取a的value值
user_list.append(name_key(dict))
print(user_list) #将获取到的字典value保存到列表:user_list中,应用场景:用户名称的验证
=========================================================
user_name_list = list(map(lambda name: name['name'],user))
print(user_name_list)