python进阶day8

python进阶之路

Day8

hello world!今日是python学习的第八天,我将会在下面文章对基础语法进行一些介绍,主要为格式字符串、字符串常用的方法、函数的作用与定义等。

1. 格式字符串

name = '曹峰'
age = 18
message = 'xxx今年x岁。'
方案一:字符串拼接
message = name + '今年' + str(age) + '岁'
print(message)

xx性别:x,年龄:xx,今年考了xx分
name = '夏明'
sex = '男'
age = 40
score = 60
message = name + '性别:' + sex + ',年龄' + str(age) + ',今年考了:' + str(score)
print(message)
方案二:格式字符串
1.1 格式字符串

​ 语法:
​ 带有格式占位符的字符串 % (数据1,数据2,数据3,。。。)

​ 说明:

​ 1) 格式占位符 - 字符串中不同类型数据的占位符号,固定的。
​ %s - 字符串的格式占位符(任何类型的数据都可以赋值)
​ %d - 整数的格式占位符
​ %.Nf - 浮点数的格式占位符,并且控制小数点后有N位小数(满足四舍五入)
​ %c - 字符的格式占位符

​ 2) %() - 固定写法

​ 3) 数据 - 最后给字符串中不确定内容赋值的数据;数据的个数和类型要与前面占位符的个数以及类型要保持一致。

message = '%s 性别:%s,年龄:%d,今年考了%d分' % (name,sex,age,score)
print(message)
print('%s 性别:%s,年龄:%d,今年考了%d分' % (name,sex,age,score))

message = '金额:%f' % (12)
print(message)

message = '金额:%.2f' % (12)
print(message)

message4 = '97:%c' % ('a')
print(message4)

message4 = '97:%c' % (97) # 可以直接将数字作为编码值,编码成字符后在加入字符串中。
print(message4)

​ 练习:狗的自我介绍:’大家好,我是xxx,今年xx岁,品种:‘

dog1 = {'name':'大黄','age':2,'breed':'土狗'}
print('大家好,我是%s,今年%d岁,品种:%s' % (dog1['name'],dog1['age'],dog1['breed']))
方案三:format字符串(f - string)
1.2 format

​ 用法1:带{}的字符串.format(数据1,数据2,数据3,。。。)

message = '大家好,我是{},今年{}岁,品种:{}'.format('小白',3,'银狐')
print(message)

​ 用法2:{下标}

message = '大家好,我是{0},我的名字是{0},今年{1}岁'.format('曹峰',18)
print(message)

​ 用法3:{key}

message = '大家好,我是{name},我的名字是{name},今年{age}岁'.format(name = '曹峰',age = 18,sex = '男')
print(message)
1.3 加约束:{:约束}/{下标:约束}/{key:约束}
1) 约束小数位数 - {:.Nf}
message1 = 'a:{:.1f},b:{:.2f}'.format(10,20)
print(message1)

​ ‘我的名字是xxx,月薪:xxx。xx元’

print('我的名字是{name},月薪:{money:.2f}元'.format(name = '曹峰',money = 1000000))
2) 控制显示正负号 {:+}
print('a:{:+} b:{:+}'.format(10,-20))
3) 控制数字的宽度:{:x>N} / {:x<N} - N表示数据最终的位置,x是填充数字,>表示填充在原数字的左边,<表示在右边。
print('a:{:0>5},b:{:1<5}!'.format(10,20))
4) 数字用逗号隔开:{:,}
print('a:{:,},b:{:,}'.format(100,1000000))
5) 显示百分比:{:.N%} - N控制百分制数小数点的位数
print('a:{:.2%},b:{:.1%}'.format(0.12,0.789))
1.4 f - string的用法

​ f’{数据}’

name = '小花'
age = 18
message = f'姓名:{name},年龄:{age}'
print(message)

print(f'a:{100}')

2. 字符串常用方法

2.1 center/rjust/ljust
print('abc'.center(7,'x'))
print('abc'.ljust(7,'x'))
print('abc'.rjust(7,'x'))
# zfill == rjust填充字符是固定0
print('abc'.zfill(7))

​ 练习:输入学生编号,自动产生对应的学号: python2003001,python2003023

stu_num = '12'
study_id = f'python2003{stu_num.zfill(3)}'
print(study_id)
2.2 count
message = 'how are you? i am fine. and you?'
print(message.count('a'))
print(message.count('you'))
print(message.count('a',0,10))# 在下标0~9的范围内统计a的次数
2.3 index/find - 查找字符串的位置
message = 'how are you? i am fine. and you?'
print(message.index('you'))
print(message.find('you'))

print(message.index('you+')) # 若没有直接报错
print(message.find('you+')) # 若没有返回-1
2.4 join

​ 字符串.join(序列) - 将序列中的元素用指定字符串拼接成一个新的字符串(序列中的元素必须都是字符串)

list1 = ['name','age','sex']
print(''.join(list1))
print('abc'.join(list1))

print('='.join({'a':10,'b':20}))
2.5 lstrip/rstrip/strip - 删除空白
message = '\n\t  abc \t 123     '
print('========================')
print(message,'------')
print('========================')
new1 = message.lstrip()
print(new1,'-----')
print('=========================')
new2 = message.rstrip()
print(new2,'------')
print('=========================')
new3 = message.strip()
print(new3,'------')
print('==========================')
2.6 maketrans和translate
table = str.maketrans('ab','12') # 创建映射表:a-1,b-2
new_str1 = 'abc'.translate(table) # 按照指定的映射表将原字符串中的字母及逆行替换。
print(new_str1)
2.7 replace

​ 字符串1.replace(字符串2,字符串3) - 将字符串1中的字符串2全部替换成字符串3

message = 'how are you? i am fine. and you?'
new_str2 = message.replace('you','me')
print(new_str2)

new_str2 = message.replace('you','me',1)
print(new_str2)
2.8 split

​ 字符串1.split(字符串2) - 将字符串2作为切割点对字符串1进行分割。形成一个新的列表。

str1 = 'asdfghjkl'
str2 = 'fg'
new_list = str1.split(str2)
print(new_list)

3 函数的简单了解

3.1 函数的作用

​ 没有函数的问题:1. 同样的功能需要多次的时候需要把实现这个功能的代码写多次

​ 功能一旦发生改变,需要修改多处代码。
​ 解决:使用函数

print('============下载图片=============')
print('确定下载地址')
print('检测网络状态')
print('提示网络状态')
print('连接服务器传输数据')
print('接受数据')
print('保存数据')

def download_image():
    print('============下载图片=============')
    print('确定下载地址')
    print('检测网络状态')
    print('提示网络状态')
    print('连接服务器传输数据')
    print('接受数据')
    print('保存数据')
download_image()
3.2 什么是函数
   ###### 1)函数的概念(函数就是机器)

​ 函数就是能实现某一个特定功能的代码的封装。

   ###### 2)函数的分类

​ 系统函数:系统已经定义好的函数,程序员根据需求直接使用。如:print、type、input等。(别人造好的机器)
​ 自定义函数:程序员自己定义的函数。(自己造的机器)

   ###### 3) 定义函数(造机器)

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

​ 说明:

​ a. def - 关键字;固定写法

​ b. 函数名 - 程序员自己命名;
​ 要求:标识符;不能是关键字
​ 规范:所有字母都小写,多个单词之间用下划线隔开 。
​ 见名知义(看见函数名大概知道函数的功能)
​ 不能使用系统自带的函数名、模块名和类名

​ c. 形参列表 - 以:变量名1,变量名2,变量名3,。。。的形式存在(可以一个变量都没有)
​ 形参的作用:是将函数外面的数据传输到函数的内部。
​ 定义函数的时候需不需要形参,定义几个形参,主要看实现函数的功能需不需要形参,需要几个形参。

​ d. 函数说明文档 - 就是用“”“”“”表示的说明性的文字。
​ e. 函数体 - 和def保持一个缩进的一条或者多条语句;就是实现函数功能的一条或者多条语句。

​ (重要!!!)注意:定义函数的时候不会执行函数体。调用函数的时候才会使用函数体。

4) 初学者定义函数的步骤:

​ 第一步:确定函数的功能
​ 第二步:根据函数的功能确定函数的名字
​ 第三步:确定函数的参数(看实现函数的功能需不需要额外的数据,需要几个搞几个)
​ 第四步:实现函数的功能。
​ 第五步:写函数的说明文档
​ 练习:定义一个函数求两个数的和

def two_sum(m,n):
 """
 求两个数的和,并且打印结果。
 :param m: 第一个数
 :param n: 第二个数
 :return: None
 """
 sum1 = m + n
 print(sum1)

two_sum(2,3)

​ 练习2:定义一个函数求一个属的阶乘

def factorial(n):
    """
    # 求一个数的阶乘,结果为正整数。并打印结果。
    :param n: 给出的一个数
    :return: None
    """
    factorial1 = 1
    for i in range(1,n+1):
        factorial1 *= i
    print(factorial1)
factorial(3)
# 执行函数的时候不会执行函数体
def func1():
    list1 = [1,2,3]
    print(list1[100])
    print('========')
5) 调用函数(使用机器)

语法:
函数名(实参列表)

说明:
函数名 - 已经定义好的函数的函数名
实参列表 - 以 数据1,数据2,数据3,。。。的形式存在(也可以没有)
真正传递到函数中使用的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值