美文网首页
第2周-python-函数-理论基础

第2周-python-函数-理论基础

作者: 果芽软件 | 来源:发表于2019-06-26 14:23 被阅读0次

一、铺一条路

1.1 面向过程铺路

  1. 水泥、沙子、搅拌
  2. 用多少搅拌多少
  3. 做了就直接用
  4. 把水泥铺到路面上
面向过程修路

1.2. 面向函数铺路

1.2.1. 预制厂生产水泥砖

  • 水泥、沙子、搅拌
  • 提前生产水泥砖
  • 生产出来了放着不用
image.png image.png

1.2.2. 施工队铺路

  • 施工队寻找预制厂
  • 买现成的水泥砖
  • 水泥、沙子、搅拌
  • 把砖用水泥粘合到路面上
image.png

1.3.预制装配式住宅

预制装配式住宅

二、计算机结构

冯诺依曼结构 函数结构 自动化内容

3. 代码量对比

  1. 左边为面向过程编程
  2. 右边为面向函数编程


    代码量对比

三、代码规范

3.1 定义语法

def add(a, b):
    c = a+b
    return c


代码 含义
def 函数代码块的关键字,“定义”的意思(define)
add 函数的名称,类似print(),用add()就可以调用
() 圆括号必须有,里面放参数,参数可为空,表示不需要传任何数据
a 申明一个变量,变量名为a,用来存传入的第1个数据
, 逗号,多个参数用逗号分割,逗号后面+空格
b 申明第二个变量,变量名为b,用来存传入的第2个数据
: 冒号,函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
空行 函数末尾,加空行

3.2 调用语法

sum = add(1,3)
代码 含义
add 调用add函数
() 存放要输入的数据
, 多个输入数据,用逗号分割
= 赋值符,将add(1,3)的返回结果,赋值给变量
sum 变量名,存放add(1,3)的返回结果

四、面向函数编程(预制厂)

1. 面向过程编程

    age = int(input("请输入年龄:"))
    nickname = ''
    if age < 20:
        nickname = '小奶狗'
    elif age in range(20, 30):
        nickname = '男神'
    else:
        nickname = '油腻大叔'
    print("昵称:" + nickname)

五、debug单步调试

  1. 设置断点


    设置断点
  2. debug运行


    debug模式运行
  3. 单步调试


    单步调试
  4. 查看变量


    查看变量值

六、函数的使用

6.1 在同一个.py文件内

def get_nick_name(age):
    name = ''
    if age < 20:
        name = "小奶狗"
    elif age in range(20,30):
        name = '男神'
    else:
        name = '油腻大叔'
    return name



name1 = get_nick_name(18)
print('结果:' + name1)

6.2 不在同一个.py文件内

  1. 新建python file,命名:tools.py
def get_nick_name(age):
    name = ''
    if age < 20:
        name = "小奶狗"
    elif age in range(20,30):
        name = '男神'
    else:
        name = '油腻大叔'
    return name
  1. 新建python file,命名:registry.py
from tools import *

nick_name = get_nick_name(18)
print('结果:' + nick_name)

from tools import *

代码 含义
from 从哪个模块(即.py文件)
tools 即tools.py模块
import 导入
* 代表所有函数(如果想导入指定函数,就写函数名)

注意:import前,得先将代码所在文件夹标记为源文件查找路径,不然会提示函数不存在

image.png

二、技术基础

1. random模块

  1. import模块
  2. random静态对象
  3. random常用方法
建议使用 "import random" 风格而非 "from random import *"。这样可以保证随操作系统不同而有所变化的 os.open() 不会覆盖内置函数 open()。
import random

print(random.random())  # 0-1之间随机浮点数
print(random.randint(2,4))  # 随机整数,最小值、最大值
print(random.randrange(0,100,3))  # 指定范围随机整数,最小值、最大值、步幅
list = ['a','b','c',1,2,3]
print(random.choice(list))  # 从列表中随机选一个数
print(random.sample(list,3))  # 从列表中选一个子集,子集也是列表
random.shuffle(list)  # 将列表随机打乱顺序
print(list)

执行结果:

0.6478421725433702
2
87
1
['c', 1, 3]
[1, 'b', 'a', 2, 3, 'c']

2. 语法简化

简化前

age = 30
mark = ''
if age > 18:
    mark = '成年人'
else:
    mark = '未成年人'

简化后

age = 30
mark = '成年人' if age >18 else '未成年人'

3. string字符对象

  1. string静态对象
  2. 小写字母ascii_lowercase
  3. 大写字母ascii_uppercase
  4. 字母ascii_letters(小写+大写)
  5. 数字digits
  6. 标点符号punctuation
  7. 可打印字符printable(字母+数字+标点符号)
import string
print('小写字母:'+string.ascii_lowercase)
print('大写字母:'+string.ascii_uppercase)
print('字母:'+string.ascii_letters)
print('数字:'+string.digits)
print('标点符号:'+string.punctuation)
print('可打印字符:'+string.printable)

打印结果

小写字母:abcdefghijklmnopqrstuvwxyz
大写字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ
字母:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
数字:0123456789
标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
可打印字符:0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~    

4. 列表常见处理

序号 方法 用途
1 扩展原列表(单值) li.append('dd')
2 扩展原列表(列表) li.append(['kk,vv'])
3 列表转换成字符串 v1=''.join(li)
4 统一列表元素类型 list(map(str,li))
5 列表打乱顺序 random.shuffle(pwd_list)
6 清空列表 list.clear()
7 列表排序 li.sort()
8 列表翻转 li.reverse()

a) 列表打乱顺序

li = ['a','b','c','d']
print(li)

random.shuffle(li)
print(li)

执行结果

['a', 'b', 'c', 'd']
['a', 'c', 'd', 'b']

b) 扩展列表

扩展单个

li = ['a','b','c']
print(li)

li.extend('d')
print(li)

li.extend(['e','f'])
print(li)

执行结果

['a', 'b', 'c']
['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd', 'e', 'f']

c) 列表转字符串:

无数字:

li = ['a','b','c']
print(li)
print(''.join(li))

有数字:

li = ['a','b','c',1,2,3]
print(li)
li2 = list(map(str,li))
print(li2)
print(''.join(li2))

d) 统一列表元素类型:

li = ['1','2','3',4,5,6]
print(li)
print(list(map(str,li)))
print(list(map(int,li)))
['1', '2', '3', 4, 5, 6]
['1', '2', '3', '4', '5', '6']
[1, 2, 3, 4, 5, 6]

5. 字符串截取

a) 字符串截取

str = '0123456789'
print(str[0:3])  #截取第一位到第三位的字符
print(str[:])  #截取字符串的全部字符
print(str[6:])  #截取第七个字符到结尾
print(str[:-3])  #截取从头开始到倒数第三个字符之前
print(str[2])  #截取第三个字符
print(str[-1])  #截取倒数第一个字符
print(str[::-1])  #创造一个与原字符串顺序相反的字符串
print(str[-3:-1])  #截取倒数第三位与倒数第一位之前的字符
print(str[-3:])  #截取倒数第三位到结尾

b) 数字左补0

随机生成4位数,如果小于4位,左补0

num = random.randint(0,9999)+10000
print(num)

print(str(num)[1:])
10039
0039

思路:

  1. 随机数+10的固定位数+1次方
  2. 转换成字符串,去掉最高位1

相关文章

  • 第2周-python-函数-理论基础

    一、铺一条路 1.1 面向过程铺路 水泥、沙子、搅拌 用多少搅拌多少 做了就直接用 把水泥铺到路面上 1.2. 面...

  • Python--删除字符串首尾空格函数的实现

    在上一篇文章中Python-批量修改文件名中,有用到strip()函数删除字符串首尾空格。 strip()函数示例...

  • Python-函数

    函数 函数是可重复使用的程序片段:它允许你为 某个代码块 命名,允许通过这一特殊的名字在你程序的任何地方来运行代码...

  • python-函数

    作用域 L local局部作用域 E enclosing嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作...

  • Python-函数

  • python-函数

    定义函数 函数定义示例: 定义 cylinder_volume 函数后,我们可以如下所示地调用该函数。 cylin...

  • python-函数

    1:介绍 python里的函数: 就是一系列实现某个特定功能的语句的集合, 他可以通过名字进行...

  • Python-函数

    ​ 函数是一种可以复用代码,把大型代码拆分成多段代码,实现功能分离,达到模块化的效果。 ​ 对于函数主要有...

  • python-函数

    1.全局变量和局部变量的区别 列表字典修改不用声明global 2.不定参数 args(变量名随意) 拆包 用和*...

  • Python-函数

    1.函数定义 def name (参数名):   函数体   return 返回值 通过缩进来表示函数体的作用范围...

网友评论

      本文标题:第2周-python-函数-理论基础

      本文链接:https://www.haomeiwen.com/subject/qrxqcctx.html