首页 > 其他 > 详细

No.9函数(一)

时间:2020-03-19 10:16:53      阅读:59      评论:0      收藏:0      [点我收藏+]

No.9

今日概要

  • 三元运算
  • 函数

内容详细

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

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

2.函数

面向过程编程。【可读性差/可重用性差】

#面向过程编程:
user_input = input('请输入身份:')

if user_input == '管理员':
    pass # 给管理员发邮件代码,假设18行。
if user_input == '业务员':
    pass # 给业务员发邮件代码,假设18行。
if user_input == '老板':
    pass # 给老板发邮件代码,假设18行。

函数式编程

def send_emali()
    pass #发邮件代码,假设18行。
if user_input == '管理员':
    send_email()
if user_input == '业务员':
    send_email()
if user_input == '老板':
    send_email()
  1. 本质:将N行代码拿到别处并给它起个名字,以后就可以通过名字调用这段代码并执行。

  2. 应用场景:
    • 代码重复执行
    • 代码量特别多,超过一屏幕,可以选择通过函数进行代码分割。

2.1函数的基本结构

#函数的定义
def 函数名():
    函数内容

#函数的执行
函数名()
def get_lst_first_data():
    v = [11,22,33,44]
    print(v[0])
   
get_list_first_data()
#如过函数不被调用,内部代码永远不会被执行。

2.2参数

def get_lst_first_data(arg): # arg称为形式参数
    v = [11,22,33,44]
    print(v[arg])
   
get_list_first_data(0) # 实际参数
get_list_first_data(1)
get_list_first_data(2)
get_list_first_data(3)

习题

#1.请写一个函数计算列表info=[11,22,33,44,55]中所有元素的和。
def get_sum():
    info = [11,22,33,44,55]
    data = 0
    for item in info:
        data += item
    print(data)
get_sum()

#2.请写一个函数计算列表中所有元素的和。
def get_list_sum(lst):
    data = 0
    for item in lst:
        data += item
    print(data)    
get_list_sum([1,2,3,4,5,6])

#3.请写一个函数将两个列表拼接起来。
def join_list(j,k):
    result = []
    result.extend(j)
    result.extend(k)
    print(result)
join_list[[1,2,3],[4,5,6]]

#4.计算列表的长度
def my_len(lst):
    count = 0
    for item in lst:
        count += 1
    print(count)
v = [1,2,3,4,5,6]
my_len(v)
len(v)   

2.3返回值

def func(arg):
    pass
    return 8   #设定返回值是8,默认是None。
val = func('alex')
#1.让用户如数一段字符,计算字符中A的个数,并在文件中写入同样个数B。
def get_count(data):
    sum_counter = 0
    for i in data:
        if i == "A":
            sum_counter += 1
    return sum_counter

def write_file(line)
    if len(line) == 0
        return False  #函数执行过程中一旦遇到return,则停止函数执行。
    with open('文件路径', mode='w', encoding='utf-8') as f:
        f.write(line)
    return True

content = input('>>>')
total = get_count(content)
msg = 'B' * total
status = write_file(msg)
if status:
    print('写入成功')
else:
    print('写入失败')

2.4总结

def f1():
    pass
f1

def f2(a):
    pass
f2(11)

def f3():
    pass
    return 1
v = f3

def f4(a,b):
    return a + b
v = f4(1,2)

2.5习题

#1.请写一个函数,计算一个列表中有多少个数字,并打印:列表中有%s个数字。
def get_lst(data):
    count = 0
    for item in data:
        if type(item) == int:
            count += 1
    msg = '列表中有%s个数字。'%(count,)
    print(msg)
get_lst([11,22,33])
#上下分割#
def get_lst(data):
    count = 0
    for item in data:
        if type(item) == int:
            count += 1
    return count
v = get_lst([1,2,'a','b'])
msg = '列表中有%s个数字。'%(v,)
print(v)
#2.请写一个函数,获取列表中偶数索引位置的数据并生成一个新的列表,并返回。
def get_data(arg):
    v = arg[::2]
    return v
data = get_data([1,2,3,4,5,6])
#上下分割#
def get_data(arg):
    v = []
    for i in range(0, len(arg)):
        if i % 2 == 0:
            v.append(arg[i])
    return v
data = get_data([1,2,3,4,5,6])
#3.读取文件,并将文件内容构造成指定的数据,返回。
'''文件内容
alex|123|18
eric|uyk|20
'''
'''目标结构
a. ['alex|123|18','eric|uyk|20']
b. [['alex','123','18'], ['eric','uyk','20']]
c. [
    {'name':'alex', 'pwd':'uyk', 'age':'18'},
    {'name':'eric', 'pwd':'uyk', 'age':'20'}
    ]
'''

No.9函数(一)

原文:https://www.cnblogs.com/elliottwave/p/12521798.html

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