首页 > 编程语言 > 详细

Python之函数基础

时间:2021-05-23 23:06:27      阅读:23      评论:0      收藏:0      [点我收藏+]

Python之函数基础

背景:

1、有重复代码,用函数增加代码的重用性
2、代码太长,用函数增强代码的可读性

一、参数
参数可分为形参、实参、位置传参和关键字传参
注意:
1. ** 必须放在 * 的后面
2. 参数和动态参数混合时,动态参数只能放在最后
3. 默认值参数和动态参数同时存在

二、返回值
1、返回值可以是任意类型,如果函数中没写return,则默认返回None
注:当在函数中未写返回值returnreturn None ,执行函数获取的返回值都是None
2、return后面的值如果有逗号,则默认会将返回值转换成元组再返回
3、函数一旦遇到return就会立即退出函数(终止函数中的所有代码)

举例演示:

1、请定义一个函数,用于计算一个字符串中字符a出现的次数并通过return返回
需求:- 参数,字符串。
- 返回值,字符串中 a 出现的次数

def char_count(text):
    count = 0
    for char in text:
        if char == ‘a‘:
            count += 1
    return count


result = char_count("alex")
print(result)

2、写函数,判断用户传入的一个值(字符串或列表或元组任意)长度是否大于5,并返回真假

def judge_length(data):
    if len(data) > 5:
        return True
    return False

result = judge_length(‘dadadadda‘)
print(result)

3、写函数,接收两个数字参数,返回比较大的那个数字(等于时返回两个中的任意一个都可以)

def get_bigger(num1, num2):
    if num1 > num2:
        return num1
    return num2

result = get_bigger(2, 3)
print(result)

4、写函数,函数接收四个参数分别是:姓名,性别,年龄,学历,然后将这四个值通过"*"拼接起来并追加到一个student_msg.txt文件中

def write_file(name, sex, age, edu):
    list = [name, sex, age, edu]
    data = ‘*‘.join(list)
    with open(‘student_msg.txt‘, mode=‘a‘, encoding=‘utf-8‘) as pf:
        pf.write(data)

result = write_file(‘alex‘, ‘男‘, ‘30‘, ‘本科‘)
print(result)

5、补充代码,实现如下功能:

  • 【位置1】读取文件中的每一行数据,将包含特定关键的数据筛选出来,并以列表的形式返回。
  • 【位置1】文件不存在,则返回None
  • 【位置2】文件不存在,输出 "文件不存在",否则循环输出匹配成功的每一行数据
import os

def select_content(file_path,key):
    # 补充代码【位置1】
    if not os.path.exists(file_path):
        return None
    # 补充代码【位置1】
    data_list = []
    with open(file_path, mode=‘r‘, encoding=‘htf-8‘) as pf:
        data = pf.read()
        for line in data:
            if key in line:
                data_list.append(line)
    return data_list

result = select_content("xxx.txt", "股票")
# 补充代码【位置2】
if result == None:
    print(‘文件不存在‘)
else:
    print(result)

6、补充代码,实现敏感词替换的功能

def change_string(origin):
    # 补充代码,将字符串origin中中的敏感词替换为 **,最后将替换好的值返回。
    data_list = ["苍老师", "波多老师", "大桥"]
    for item in data_list:
        origin = origin.replace(item, ‘**‘)
    return origin


text = input("请输入内容:")
result = change_string(text)
print(result)

7、基于函数实现用户认证,要求:

  • 写函数,读取的用户信息并构造为字典(用户信息存放在files/user.xlsx文件中)
  • 用户输入用户名和密码,进行校验。(且密码都是密文,所以,需要将用户输入的密码进行加密,然后再与Excel中的密文密码进行比较)
import hashlib
from openpyxl import load_workbook

def get_user_dict():
    user_dict = {}
    wb = load_workbook("user.xlsx")
    sheet = wb.worksheets[0]
    for row in sheet.rows:
        user_dict[row[1].value] = row[2].value
    return user_dict

def encrypt(origin):
    origin_bytes = origin.encode(‘utf-8‘)
    md5_object = hashlib.md5()
    md5_object.update(origin_bytes)
    return md5_object.hexdigest()

user = input("请输入用户名:")
pwd = input("请输入密码:")

通过加密算法得出最终的密文
encrypt_pwd = encrypt(pwd)

通过函数get_user_dict()从excel中解析出用户名和密码数据放入user_dict字典中
user_dict = get_user_dict()

通过输入的用户名去系统的用户名密码配置文件中查找对应的密码
db_pwd = user_dict.get(user)

比较用户输入的密码与系统配置文件中的密码是否一致,一致则输出正确,否则错误
if db_pwd == encrypt_pwd:
    print("输入正确")
else:
    print("输入错误")

Python之函数基础

原文:https://www.cnblogs.com/sweetydm/p/14800155.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!