需求:编写一段Python代码,生成一个随机的4位验证码
提前:定义一个字符串
str1 = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
编写Python代码:
① 思考:如果只生成4个字符的验证码,如何只保证从字符串中读取4次(while循环、for循环)
② 思考:如果随机的从str1字符串中读取4个字符?random.randint()生成随机数
③ 思考:如果从字符串提取出某个字符?答:使用索引下标,str1[索引下标]
import random
# 1、定义一个字符串
str1 = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
code = ""
# 2、编写循环,只循环4次
for i in range(4): # 0 1 2 3
# 3、随机获取str1中的某个字符
index = random.randint(0, len(str1) - 1)
code += str1[index]
# 4、打印4位随机验证码
print(code)
在Python实际开发中,我们使用函数的目的只有一个“让我们的代码可以被重复使用”
函数的作用有两个:
① 模块化编程
② 代码重用
在编程领域,编程可以分为两大类:① 模块化编程 ② 面向对象编程
所谓的函数就是一个被命名的、独立的、完成特定功能的代码段(一段连续的代码),并可能给调用它的程序一个返回值。
被命名的:在Python中,函数大多数是有名函数。当然Python中也存在没有名字的函数叫做匿名函数。
独立的、完成特定功能的代码段:在实际项目开发中,定义函数前一定要先思考一下,这个函数是为了完成某个操作或某个功能而定义的。(函数的功能一定要专一)
返回值:很多函数在执行完毕后,会通过return关键字返回一个结果给调用它的位置。
基本语法:
def 函数名称([参数1, 参数2, ...]):
函数体
...
[return 返回值]
在Python中,函数和变量一样,都是先定义后使用。
# 定义函数
def 函数名称([参数1, 参数2, ...]):
函数体
...
[return 返回值]
# 调用函数
函数名称(参数1, 参数2, ...)
① 使用Python代码,编写一个打招呼程序
第一步:见到一个老师,打一声招呼
print('您好')
第二步:见到一个老师,打一声招呼
print('您好')
第二步:见到一个老师,打一声招呼
print('您好')
虽然以上程序可以满足程序的需求,但是我们发现,我们的代码做了很多重复性的工作。我们能不能对以上代码进行进一步的优化,避免代码的重复性编写。
② 升级:使用Python代码,编写一个打招呼程序(函数——一次编写,多次利用)
# 定义函数(封装函数)
def greet():
print('您好')
# 调用函数
# 见到一个老师,打一声招呼
greet()
# 见到一个老师,打一声招呼
greet()
# 见到一个老师,打一声招呼
greet()
③ 升级:使用Python代码编写一个打招呼程序,可以实现向不同的人打不同的招呼
# 定义一个函数,同时为其定义一个参数
def greet(name):
print(f'{
name},您好')
# 调用函数
# 见到了张老师,打一声招呼
greet('老张')
# 见到了李老师,打一声招呼
greet('老李')
# 见到了王老师,打一声招呼
greet('老王')
④ 函数的设计原则“高内聚、低耦合”,函数执行完毕后,应该主动把数返回给调用处,而不应该都交由print()等函数直接输出。
# 定义一个函数,拥有name参数,同时函数执行完毕后,拥有一个return返回值
def greet(name):
# 执行一系列相关操作
return name + ',您好'
# 调用函数
# 见到了张老师,打一声招呼
print(greet('老张')) # 老张,您好
# 见到了李老师,打一声招呼
print("\033[0;31;40m\t" + greet('老李') + "\033[0m")
# 见到了王老师,打一声招呼
print("\033[0;36;40m\t" + greet('老王') + "\033[0m")
终端颜色参考:https://www.cnblogs.com/zhuminghui/p/9457185.html
思考1:如果一个函数如些两个return (如下所示),程序如何执行?
def return_num():
return 1
return 2
result = return_num(<