Python入门第九天-格式字符串和函数基础

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

一、格式字符串

1、r语法

  • python中可以在字符串的最前面(引号前)加r/R,来阻止字符串中的转义字符转义
  • r可以让字符串中的转义字符都变成普通字符
  • 应用:写路径时一般加r,防止路径中出现转义的情况
str1 = '\tabc\n123'
print(str1)
str2 = r'\tabc\n123'
print(str2)

2、格式字符串

  • 主要解决的问题:需要写的字符串中有一部分是不确定的,可能会根据变量来确定情况

  • 完成以下格式的message

  • message = ‘xxx今年xx岁’

(1)字符串拼接(比较麻烦)
name = input('请输入姓名:')
age = int(input('请输入年龄:'))
money = 18
message1 = name + '今年' + str(age) + '岁!'
(2)%格式字符串
a.语法
  • 包含格式占位符的字符串%(数据1,数据2,数据3…)
  • 数据要和占位符一一对应
b.占位符
  • %s - 字符串(可以用任何数据来赋值,是因为在python中所有的数据都能转换成字符串)
  • %d - 整数(只能是数字,填充的时候自动转换成整数)
  • %f - 浮点数(小数,只能是数字,默认保留六位小数)
  • %.Nf - 保留N位小数,保留小数时采用四舍五入的方式
  • 如果想要原样拼接,直接采用%s的方式就可以了,最方便
message = '%s今年%d岁!月薪%dk!' % (name, age, money)
print(message)
c.f-string - 直接把变量插入到字符串里面
  • 可以是变量,数据,表达式都可以
message = f'{name}今年{age}岁!月薪{money}K'
print(message)
  • 可用于控制小数位数
  • {数据:.Nf} - 控制数据保留N位小数
num = 1.234
result = f'数字:{num:.2f}'
print(result)   # 数字:1.23
  • 控制数据的长度
  • {数据:填充字符>长度} - 将数据转换成指定长度的字符串,不够的用指定字符填充在左边
  • {数据:填充字符<长度} - 将数据转换成指定长度的字符串,不够的用指定字符填充在右边
num = 23
result = f'学号:{num:x>4d}'
print(result)    # 学号:xx23
  • 百分比
  • {数据:.N%} - 将小数转换成百分比,同时数字保留N位小数
num = 0.2567
result = f'及格率:{num:.2%}'
print(result)      # 及格率:25.67%
  • 逗号分隔
  • {数据: ,} - 将数据之间用逗号分隔
num = 18909878909
result = f'余额:{num:,}'
print(result)    # 余额:18,909,878,909

二、函数基础

1、函数的概念

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

(2)函数的分类

  • 系统函数:python已经定义好的函数,程序员只需要在需要这些函数功能的时候调用就行
  • 自定义函数:程序员自己定义的函数

2、函数的定义(造机器)

(1)语法

def 函数名(形参列表):
函数说明文档
函数体

(2)语法说明
  • def - 关键字:固定写法
  • 函数名 - 程序员自己命名的;是标识符,不能是关键字;
    所有的字母都小写,单词之间用下划线隔开
    见名知义(看到函数名大概知道函数的功能)
    不使用系统的函数名、类名和模块名
  • (): - 固定写法,必须写括号
  • 形参列表 - 以’变量1,变量2,变量3,,,,‘的形式存在,也可以没有形参,只是一个空括号;形参的作用是将函数外面的数据传递到函数里面, 定义函数时 需不需要形参,需要几个形参,看实现函数功能需不需要额外的数据,需要几个
  • 函数说明文档 - 相当于机器的说明书,用来辅助别人更方便的使用当前函数( 用三个双引号框起来的注释)
  • 函数体 - 和def保持一个缩进的一条或者多条语句;函数体就是实现函数功能的代码段(核心)
  • 定义函数的时候是不会执行函数体的,只有当使用它的时候才会执行
# 写一个函数,求两个数的和
def sum2(num1, num2):
    """
    (功能说明区)求指定两个数的和
    :param num1: 要求和的数字中的第一个数字
    :param num2: 要求和的数字中的第二个数字
    :return: 返回值说明
    """
    print(num1 + num2)
# 练习:写一个函数求一个整数的阶乘
# N!= 1*2*3*4*....*(N-1)*N
def factorial(n):
    '''
    求指定数的阶乘
    :param n:
    :return:
    '''
    sum1 = 1
    for x in range(1, n+1):
        sum1 *= x
    print(f'{n}!是:{sum1}')

# 练习2:写一个函数,将指定字符串中指定的字符全部删除
def deal_char(string, char):
    # # 方法一:(用添加的方式来达到删除的目的)
    # new_str = ''
    # for x in string:
    #     new_str += x
    # print(new_str)
    # 方法二:
    new_str = ''.join([x for x in string if x != char])
    print(new_str)
# 练习3:写一个函数,统计一个字典中指定值的个数
def value_count(dic, value):
    count = 0
    for x in dic:
        if dic[x] == value:
            count += 1
    print(count)

3、函数的调用

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

(1)调用函数(使用机器)
  • 语法:函数名(实参列表)
(2)说明
  • 函数名 - 需要使用的函数的名字(这个函数名必须是已经定义过的函数的函数名)
  • 实参列表 - 多个数据用逗号隔开,具体的个数看对应的函数的形参的个数
    实参就是在使用函数的时候通过形参具体传递到函数内部的数据
  • 同一个函数可以调用多次
(3)函数调用过程
  • 第1步:回到函数定义的位置
  • 第2步:传参(用实参给形参赋值,保证每个参数都有值)
  • 第3步:执行函数体
  • 第4步:确定返回值
  • 第5步:回到调用的位置接着往后执行
sum2(7, 9)
sum2(10, 23)      # 33
factorial(10)      # 10!是:3628800
deal_char('how are you', ' ')   # howareyou
value_count({'a': 10, 'b': 10, 'c': 20}, 10)  # 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值