day9-格式字符串和函数基础

day9-格式字符串和函数基础

格式字符串

r语法

python中可以在字符串的最前面(引号前)加r/R,来组织字符串中的转义字符转义

r可以让字符串中的转义字符都变成普通字符

str1 = '\tabc\n123'
print(str1)

str2 = r'\tabc\n123'
print(str2)   # \tabc\n123

path = R'c:\\prog\name\yuting\xuexi\aa.txt'
print(path)

格式字符串

# name = input('请输入姓名:')
name = '小明'
# age = int(input('请输入年龄:'))
age = 18
money = 18

字符串拼接

message = name+'今年'+str(age)+'岁!月薪'+str(money)+'K!'
print(message)

%格式字符串

语法:包含格式占位符的字符串 % (数据1, 数据2, 数据3…) - 数据要和占位符一一对应

占位符

%s - 字符串(可以用任何数据来赋值)

%d - 整数(只能是数字,填充的时候自动转换成整数)

%f - 浮点数(只能是数字),默认有6位小数,%.Nf - 保留N位小数,保留小数的时候采用四舍五入的方式

message = '%s今年%d岁!月薪%dK!' % (name, age, money)
print(message)

str3 = '%.2f-' % (29.2899)
print(str3)

f-String

message = f'{name}今年{age*10}岁!月薪{money}K!'
print(message)

控制小数位数

{数据:填充字符>长度} - 将数据转换成指定长度的字符串,不够的用指定字符填充在左边

{数据:填充字符<长度} - 将数据转换成指定长度的字符串,不够的用指定字符填充在右边

num = 23
result = f'学号:{num:x<4}'
print(result)

百分比

{数据:.N%} - 将小数转换成百分比,同时数字保留N位小数

num = 0.2567
result = f'及格率:{num:.2%}'
print(result)

逗号分隔

{数据:,}

num = 18920000000
result = f'余额:{num:,}'
print(result)

函数的作用

没有函数的问题:1.同样的功能在不同的地方需要的时候,代码需要重复写

​ 2.如果功能发生改变,需要把每个使用这个功能的代码找到并修改

def left():
    print('========左移=======')
    print('看后视镜')
    print('打左转向灯')
    print('向左打方向盘')
    # print('踩油门')
    print('回正方向盘')

def right():
    print('========右移=======')
    print('看后视镜')
    print('打右转向灯')
    print('向右打方向盘')
    print('踩油门')
    print('回正方向盘')

left()
right()
left()
left()
left()
right()
right()
left()

函数的概念

定义(什么是函数):函数就是对实现某一特定功能的代码的封装。(函数的本质其实就是功能,不同的函数有不一样的功能)

函数的分类:

系统函数:python已经定义好的函数,程序员只需要在需要这些函数功能的时候调用就行了。例如:print,max, min。。。

自定义函数:程序员自己定义的函数

函数的定义(造机器)

语法:

def 函数名(形参列表):

​ 函数说明文档

​ 函数体

说明:

def - 关键字;固定写法

函数名 - 程序员自己命名的;时标识符,不能时关键字

​ 所有的字母都小写,单词之间用下划线隔开

​ 见名知义(看到函数名到该知道这个函数的功能)

​ 不使用系统的函数名,类名和模块名

() - 固定写法

形参列表 - 以’变量1, 变量2 , 变量3…'的形式存在,也没有形参

​ 形参的作用时将函数外面的数据传递到函数里面,定义函数的时候不需要形参,需要几个, 看实现函数的功能需不需要额外的数据需要几个

函数说明文档 - 相当于机器的说明书,用来辅助别人更方便的去使用当前函数

​ 用三个双引号引起的注释(不是一定要写)

函数体 - 和def保持一个缩进的一条或者多条语句;

​ 函数体就是实现函数功能的代码段(核心)

# 写一个函数,求两个数的和
def sum2(num1, num2):
    """
    (功能说明区)求指定两个数的和
    :param num1: 要求和的数字中的第1个数字
    :param num2: 要求和的数字中的第2个数字
    :return: (返回值说明)
    """
    print(num1 + num2)

# 练习:写一个函数求一个整数的阶乘
# N! = 1*2*3*4*...(N-1)*N
def factorial(n):
    sum1 = 1
    for x in range(1, n+1):
        sum1 *= x
    print(f'{n}!是:{sum1}')

函数的调用

定义函数的时候不会执行函数体;调用函数的时候函数体才会执行

调用函数(使用机器)

语法:

函数名(实参列表)

说明:

函数名 - 需要使用的函数的名字(这个函数名必须是已经定义过的函数的函数名)

实参列表 - 多个数据用逗号隔开;具体的个数看对应的函数的形参的个数

​ 实参就是使用函数的时候通过形参具体传递到函数内部的数据

注意:同一个函数可以调用多次

函数调用过程

第一步:活到函数定义的位置

第二步:传参(用实参给形参赋值,保证每个参数都有值)

第三步:执行函数体

第四步:执行完函数体回到函数调用的位置接着往后执行

sum2(10, 20)
sum2(100, 200)
factorial(5)
factorial(8)
factorial(10)
上一篇:算法 day9


下一篇:秋招C++开发学习之路day9