v = 前值 if 条件 else 后值
#上下等价
if 条件:
v = 前值
else:
v = 后值
让用户输入值,如果值是整数则转换成整数,否则赋值为None。
data = input('>>>')
value = in(data) if data.isdecimal() else None
面向过程编程。【可读性差/可重用性差】
#面向过程编程:
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()
本质:将N行代码拿到别处并给它起个名字,以后就可以通过名字调用这段代码并执行。
#函数的定义
def 函数名():
函数内容
#函数的执行
函数名()
def get_lst_first_data():
v = [11,22,33,44]
print(v[0])
get_list_first_data()
#如过函数不被调用,内部代码永远不会被执行。
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)
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('写入失败')
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)
#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'}
]
'''
原文:https://www.cnblogs.com/elliottwave/p/12521798.html