zoukankan      html  css  js  c++  java
  • python笔记(8)--函数(基础)和三元运算

    内容目录

    • 三元运算
    • 函数

    内容详细:

    1.三元运算(三目运算)

    v = 前面 if 条件 else 后面
    
    if 条件:
    	v = '前面'
    else:
        v = '后面'
    
    #让用户输入值,如果值是整数,则转换为整数,否则赋值为None
    
    data = input('>>>')
    value = int(data) if data.isdecimal() else None:
    

    注意:先做出来,再考虑是否应用三元运算简化代码。

    2.函数

    2.1函数的基本结构

    def 函数名():
        #函数内容
        pass
    
    #函数的执行
    函数名()
    
    def get_list_first_data():
        v = [11,22,33]
        print(v[0])
    
    get_list_first_data()
    #注意:函数如果不被调用,则内部代码永远不会被调用
    

    2.2参数

    • 形参
    • 实参

    练习题:

    #1.请写出一个函数,函数计算列表info = [11,22,33,44]内所有的值
    def get_sum():
        info = [11,22,33,44]
        data = 0
        for item in info:
            data += item
        print(data)
    
    get_sum()
    
    #2.使用形参和实参的方式写出该函数
    def get_list_sum(v1):
        data = 0
        for item in v1:
            data += item
        print(data)
        
    get_list_sum([11,22,33,44])	#可直接传参数
    
    list_v1 = [11,22,33,44]		#可写出一个列表,然后在函数体内传列表
    get_list_sum(list_v1)
    
    #3.使用函数写出拼接两个列表,并输出拼接后的新列表
    def join_list(a1,a2):
        result = []
        result.extend(a1)
        result.extend(a2)
        print(result)
    
    join_list([11,22,33],[44,55,66])
    

    2.3返回值

    • 函数体默认return的值None
    • 函数执行过程中,一旦遇到return,则停止函数的执行

    2.4函数练习题:

    #1.让用户输入一段字符串,计算字符串中有多少A字符的个数,有多少个就再文件中写多少“alec”
    def get_char_count(data):	#定义统计输入A次数的函数体,返回值为次数
        sum_in = 0
        for item in data:
            if item == "A":
                sum_in += 1
        return sum_in
    
    def wirte_file(line):		#定义写入文件内容的函数体,返回值判断是否为空,空即返回False,有值返回True
        if len(line) == 0:
            return False
        with open("log.txt", mode="a", encoding="utf-8") as file:
            file.write(line)
            return True
    
    content = input("请输入字符串:")
    count = get_char_count(content)			#调用函数并赋值给变量
    
    putin = "alec"*count					#赋值写入的内容
    if wirte_file(putin):					#根据返回值判断输出结果
        print("写入成功")
    else:
        print("写入失败")
    
    # 2.写函数,计算一个列表中有多少个数字,打印:该列表中有%s个数字
    def get_info_count(msg):
        count = 0
        for item in msg:
            if type(item) == int:
                count += 1
        return count
    
    info = [11,22,33,"kjoi",859]
    count = get_info_count(info)
    print("该列表中有%s个数字"%(count,))
    #或者
    def get_info_count(msg):
        count = 0
        for item in msg:
            if type(item) == int:
                count += 1
        print("该列表中有%s个数字"%(count,))
        
    get_info_count([11,22,33,"kjoi",859])
    
    # 3.写函数,计算一个列表中偶数索引位置的数据构造成另外一个列表,并返回
    def get_info_count(msg):
        num = len(msg)
        num = int(num)
        info = []
        if num <= 0:
            return False
        else:
            for item in range(0,num,2):
                data = msg[item]
                info.append(data)
            return info
    
    li = get_info_count([11,22,33,44,55])
    
    print("列表太短") if li == False else print(li)
    
    #函数体或者这样写:
    def get_info_count(msg):
        num = len(msg)
        if num <= 0:
            return False
        else:
            info = msg[::2]
            return info
    
    #4.读取文件,将文件的内容构建成指定格式的数据,并返回
    """
    a.log文件
    	alec|123|18
    	kadu|852|25
    	yanan|iiukl|19
    目标结构:
    a.["alec|123|18","kadu|852|25","yanan|iiukl|19"]
    b.[[alec,123,18],[kadu,852,25],[yanan,iiukl,19]]
    c.[
    {'name':'alec','pwd':'123','age':'18'}
    {'name':'kadu','pwd':'852','age':'25'}
    {'name':'yanan','pwd':'iiukl','age':'19'}
    ]
    """
    #a.
    info = []
    with open("log.txt",mode="r",encoding="utf-8") as f:
        for item in f:
            item = item.strip()
            info.append(item)
    print(info)
    #b.
    info = []
    with open("log.txt",mode="r",encoding="utf-8") as f:
        for item in f:
            item = item.strip().replace('|',',').split(",")
            info.append(item)
    print(info)
    #c.
    info = []
    with open("log.txt",mode="r",encoding="utf-8") as f:
        new_dict = {}
        for item in f:
            item = item.strip().replace('|',',').split(",")
            new_dict = {"name":item[0],"pwd":item[1],"age":item[2]}
            info.append(new_dict)
    print(info)
    
    #将函数传参的列表或元组下标位为奇数位的取出来,并生成新的列表输出
    flag = False
    def func(data_list):
        if len(data_list) == 0:
            return flag
        val = data_list[1::2]
        return list(val)
    
    v1 = func([])
    print(v1)						#输出为False
    v2 = func((1,2,3,4,5,6,7))
    print(v2)						#输出为[2, 4, 6]
    
    #元组、集合、字典、字符串强制转换为列表
    v1 = (1,2,3,4)
    v2 = {1,2,3,4}
    v3 = {"k1":1,"k2":2,"k3":3,"k4":4}
    v4 = "yanan"
    
    print(list(v1))			#输出为[1, 2, 3, 4]
    print(list(v2))			#输出为[1, 2, 3, 4]
    print(list(v3))			#输出为['k1', 'k2', 'k3', 'k4']
    print(list(v4))			#输出为['y', 'a', 'n', 'a', 'n']
    
    #定义一个函数,比较参数的大小,输出比较大的那个值
    def func(a,b):
        return a if a>b else b  #等于v = a if a>b else b   
      return v
    val = func(1,2)
    print(val)
    
    #定义一个函数,用户输入全部信息后,结果用*将每个元素连接起来并输出
    def func(name, gender, age, edu):
        data_list = [name,gender,age,edu]
        return "*".join(data_list)
    
    user_name = input("姓名>>>:")
    user_gender = input("性别>>>:")
    user_age = input("年龄>>>:")
    user_edu = input("学号>>>:")
    data = func(user_name, user_gender, user_age, user_edu)
    print(data)				#结果为    yanan*男*18*10
    
    #定义一个函数,验证用户名在文件log.txt文件中是否存在,如果存在则返回True,否则返回False(函数有一个参数,接收用户输入的用户名)
    """
    log.txt:
    	alec|123|18
    	kadu|852|25
    """
    #第一种方式:
    def func(massage):
        flag = False
        with open("log.txt",mode='r',encoding='utf-8') as f:
            for item in f:
                item = item.strip().split("|")
                print(item)
                if massage in item[0]:
                    flag = True
                    break
        return flag
    
    arg = input("请输入用户名:")
    v = func(arg)
    print(v)
    ##第二种方式:函数中默认返回值为None,None为False,则可以判断函数调用时的参数是否成立
    def func(massage):
        with open("log.txt",mode='r',encoding='utf-8') as f:
            for item in f:
                item = item.strip().split("|")
                if massage in item[0]:
                    return True
    
    arg = input("请输入用户名:")
    v = func(arg)
    if v:
        print("存在")
    else:
        print("不存在")
    
    #写函数,在函数内部生成如下规则的列表[1,1,2,3,5,8,13,21,34,55....](斐波那契数列),并返回。
    # 注意:函数可接收一个参数用于指定列表中元素最大不可超过的范围
    #方法一:
    def func(arg):
        result = [1,1]
        while True:
            count = result[-1] + result[-2]
            if count >= arg:
                break
            result.append(count)
        return result
    
    v = func(100)
    print(v)
    #方法二:列表的长度小于2时,列表加1,否则最后一个数加前一个数
    def func(arg):
        result = []
        while True:
            if len(result) < 2:
                result.append(1)
            else:
                count = result[-1] + result[-2]
                if count >= arg:
                    break
                result.append(count)
        return result
    
    v = func(100)
    print(v)
    
  • 相关阅读:
    ajaxFileUpload 实现多文件上传(源码)
    Springboot 热部署的两种方式
    基于树莓派3B+Python3.5的OpenCV3.4的配置教程
    Shiro 架构原理
    Cron表达式
    SpringBoot中Scheduled代码实现
    Linus安装mysql8
    查看虚拟机CENTOS7 的 IP 地址和命令
    linux vi保存退出命令 (如何退出vi)
    Linux常用命令大全
  • 原文地址:https://www.cnblogs.com/lynlearnde/p/11637336.html
Copyright © 2011-2022 走看看