Python基础 函数

把range生成的整数序列里面的值一个一个的读出来

请把它写成函数,完成1-100的累加计算
1.读懂题目,选取一组数据,用零散的代码完成你的功能
2.变成函数 def 函数名(): 把零散的代码变成他的函数体
3.想办法提高函数的复用性
def sum_1():
sum = 0
for i in range(101):
sum += i
print(sum)
sum_1()

def sum_2(m, n):
sum = 0
for i in range(m, n+1):
sum += i
print(sum)
sum_2(1, 6)
请把任意字符串转成一个列表
str_1="hello" list_1=['h','e','l','l','o']

def str_to_list_1(str_1):
list_1 = []
for i in str_1:
list_1.append(i)
print(list_1)

str_to_list_1("string")

def str_to_list_2(str1, str2="hello"):
print(list(str1)+list(str2))
str_to_list_2("world")

return 关键字 return 返回某个值
list_1 = [1, 2, 3, 4]
print(list_1.pop())
def add(a, b):
print(a+b) #输出数据到控制台
add(1, 2)

def add_1(a, b):
return a+b #return 返回一个值到你的手里
print(add_1(1, 2))
1. 只有return返回来的值 才归你所有,你可以对return返回来的值进行任何操作
2.return后面的代码不再执行,函数里面的return理解为一个结束语句
def add_2(a, b):
print(a+b) #输出数据到控制台
return a+b #返回一个值,但该值未输出到控制台
print("打印return返回的值:", add_2(1, 5)) #针对于return返回的值,打印输出到控制台

def add_3(a, b):
return a+b
print(a+b)
print("打印return返回的值:", add_3(1, 2)) #针对于return返回的值,打印输出到控制台

函数名的要求 见名知意
有不同的字母用下划线隔开
字母,数字,下划线组成。不能以数字开头
变量 函数名 模块名 命名规范是一样的
第一次升级 位置参数 提高我们的复用性
def sum_1(a, b):
print(a+b)
sum_1()
# 调用函数 函数名()
第二次升级 默认参数 位置参数带默认值

def sum_2(a, b, c=1):
print(a+b+c)
sum_2(1, 2, c=3)
带有默认值的参数,仍然可以指定它的值
第三次升级 return关键字 返回一个值,等待你的处理
def sum_3(b, a=2, c=6):
return a+b+c
print("打印", a+b+c) #return 后面的语句不执行
print("打印return返回的值", sum_3(1, 2, 8))

动态参数* 动态参数名 见名知意
def fun_1(*args): #arguments
print(args)
fun_1((1, 2, 3), 4, 5, [9, 6, "hello"], "world", 0.01, True, {"age": 18})
不定长参数,可以输入任意类型的数据,数据和数据之间直接用逗号隔开
参数个数和类型都不受限制
函数内部会自动的把这些不定长不定类型的数据放到一个元组里面
求任意整数之和
def sum_10(*args):
sum = 0
for i in args:
sum = sum + i
print(sum)
sum_10(2, 9, 6)

def fun_3(a, b=5, *args): # 位置参数 默认参数 动态参数 #顺序取值
print(a)
print(b)
print(args)

fun_3(1, 2, 3, 4, 5, 6)

列表类型的数据可以进行脱外套操作
a = [[1, 2, 3], [4, 5]] #列表类型的数据
b = [8, 9, 10]
c = [('jadkf')]
d = [{"name":"lucy"}, {"age": 18}]
print(*a)
print(*b)
print(*c)
print(*d)
关键字参数 key word
def fun_3(**kwargs):
print(kwargs)
fun_3(x=1, y=2) #key-value 以键值对的方式输入参数
info = {'name': 'xy', 'age': 20}
fun_3(**info)


变量的作用范围
局部变量 全局变量
命名规范 全局大写 局部小写

a = 6 #全局变量,整个模块都生效
def add():
a = 10 #局部变量,它只作用于函数内部
b = 10 #局部变量
print("函数内部打印a的值:", a)
add()
print("函数外部打印a的值:", a)
1. 局部变量生效范围为局部,就是函数内部。全局变量就是整个模块都生效
2. 有局部变量就取局部变量,无局部变量就取全局变量

A = 6 #全局变量,整个模块都生效
def add():
a = 10 #局部变量,它只作用于函数内部
b = 10 #局部变量
global A #global 全局 针对于变量在内部函数中修改变量的值
A = A+10
print("函数内部打印a的值:", a)
add()
print("函数外部打印A的值:", A)

函数内部打印a的值: 10
函数外部打印A的值: 16

A = [1, 2, 3, 4]
def add():
A.append(999)
print("函数内部打印A的值:", A)
add()
print("函数外部打印A的值:", A)

函数内部打印A的值: [1, 2, 3, 4, 999]
函数外部打印A的值: [1, 2, 3, 4, 999]

 

 

# #!/usr/bin/env python
# # ! -*- coding: utf-8 -*-
# # @Time :
# # @Author :YiMi
# # @File :task3
#
# from __future__ import print_function
#
#
# # 1“利用刚刚说的的for循环和range()函数,完成1-100的累加计算
#
# sum = 0
# for i in range(1, 101):
# sum = sum + i
# print(sum)
#
# # 2:完成这个列表的输出a=[5,6,7,9,10,23,45],要求是:把数据按照倒序输出。利用for循环&range函数
#
# a = [5, 6, 7, 9, 10, 23, 45]
# for i in range(len(a)-1, -1, -1):
# print(a[i], end=" ")
#
# print()
#
# # 3:输出99乘法表
#
# for m in range(1, 10):
# for n in range(1, m+1):
# print('{0}*{1}={2}'.format(n, m, m*n), end=" ")
# if m == n:
# print()
#
# # 4:优酷面试题:#
# # 输入num为四位数,对其按照如下的规则进行加密:
# # 1)每一位分别加5,然后分别将其替换为该数除以10取余后的结果
# # 2)将该数的第1位和第4为互换,第二位和第三位互换
# # 3)最后合起来作为加密后的整数输出
#
# number = input("请输入一个四位数:")
#
# l = []
#
# for i in number:
# print(type(i))
#
#
#
#
# print("输入的数字为:%d" % int(number))
# a = (int(number[0])+5) % 10
# b = (int(number[1])+5) % 10
# c = (int(number[2])+5) % 10
# d = (int(number[3])+5) % 10
#
# e = a
# a = d
# d = e
# f = b
# b = c
# c = f
#
# print("加密后的结果为:", str(a)+str(b)+str(c)+str(d))
# # 方法二:
# list_1 = []
# num = input("请输入四位数字:")
# for i in num:
# value = (int(i)+5)%10
# list_1.append(value)
# list_1.reverse()
# print(list_1)
# print(list_1[0]*1000+list_1[1]*100+list_1[2]*10+list_1[3])
# # str_1 = ''
# # for item in list_1:
# # str_1 = str_1+str(item)
# # print(int(str_1))

 

list_2 = [1, 5, 6, 3]
list_2.sort()
print('执行完sort后输出:', list_2)
list_2.reverse()
print('执行完reverse后输出', list_2)

# 执行完sort后输出: [1, 3, 5, 6]
# 执行完reverse后输出 [6, 5, 3, 1]

 

#!/usr/bin/env python
# ! -*- coding: utf-8 -*-
# @Time :
# @Author :YiMi
# @File :

# 例如{"username":"admin","passwd":"123456"}
# 1.设计1个登陆的程序, 不同的用户名和对成密码存在个字典里面, 输入正确的用户名和密码去登陆,
# 2.首先输入用户名,如果用户名不存在或者为空,则一直提示输入正 确的用户名
# 3.当用户名正确的时候,提示去输入密码,如果密码跟用户名不对应, 则提示密码错误请重新输入。
# 4.如果密码输入错误超过三次,中断程序运行。
# 5.当输入密码错误时,提示还有几次机会
# 6用户名和密码都输入正确的时候,提示登陆成功!'''

dict_1 = {'admin': '123456', 'user': '123456'}
print("欢迎登录软件测试app")
while True:
user_name = input("请输入用户名:")
if user_name in dict_1.keys():
i = 3
while i > 0:
user_password = input("请输入密码:")
if user_password in dict_1.values():
print("登录成功,欢迎使用软件测试app")
break
else:
i = i-1
if i == 0:
print("密码不正确,账号已被锁,请联系管理员!!!")
break
print("密码错误,请重新输入")
print("密码输入还有%d次机会" % i)
break
else:
print("用户名不存在,请重新输入")

 

转载于:https://www.cnblogs.com/coxiseed/p/9248984.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值