ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python字符串格式化输出 & 函数(3.12)

2021-03-12 21:01:46  阅读:218  来源: 互联网

标签:格式化 函数 Python 3.12 列表 字符串 num print name


1.字符串格式化

1.字符串格式化 - 格式占位符

1)

语法:包含字符串占位符的字符串 %(数据1,数据2,数据3…)

%s - 字符串对应的占位符(可以用任何类型的数据赋值)

%d - 整数对应的占位符(一般用整数赋值)

%f - 小数对应的占位符(默认保留六位小数);%.Nf - 保留N位小数

2)数据

个数必须和前面的占位符的个数保持一致

数据可以是任何有结构的表达式

当只有一个数据的时候括号可以省

name='cyt'
age=3
money=14324

message='%s几年%d岁! 月薪:%f元' %(name,age,money)
message1='%s几年%s岁! 月薪:%s元' %(name,age,money)
print(message)
print(message1)

num=1.234
message='abc:%s'%num
print(message)#abc:1.234

message='abc:%d'%num
print(message)#abc:1

message='abc:%.2f'%num
print(message)#abc:1.23

2.f-string

在字符串最前面加f,就可以通过 f’{表达式}'结构来确定字符串中变化的内容

name='cyt'
age=3
money=14324

message=f'{name}今年{age}岁! 月薪:{money}元,a的编码值是:{ord("a")}'
print(message)

{表达式:参数}

1):.Nf - 控制保留N位小数

num=1.2434
print(f'a:{num:.2f}')# a:1.24

2)

数据:符号>N - 让数据变成长度是N的字符串,不够的在前面填充指定符号

数据:符号<N - 让数据变成长度是N的字符串,不够的在后面填充指定符号

num = 4   # 004
print(f'python2101{num}')   # python21014
print(f'python2101{num:0>3}')   # python2101004
print(f'python2101{num:0<3}')   # python2101400
print(f'python2101{num:*<3}')   # python21014**
print(f'python2101{num:x>4}')   # python2101xxx4

3) :.N% - 将数转换成百分比,同时百分数保留N位小数

num = 0.75
print(f'及格率:{num:.1%}')  # 及格率:75.0%

4) :,k

money = 198000008
print(f'余额:{money:,}')   # 余额:198,000,008

3.function

1函数式编程:

遇到问题先思考有没有已经存在的方法解决这类问题,如果没有,就自己创建能解决这类问题的函数

2函数 - 实现特定功能的代码的封装

分类;系统函数 - python自带函数,需要就调用

自定义函数 - 自己创建使用

3定义函数

参数列表 - 形参列表

        多个变量名用逗号隔开:n1,n2,n3...
        作用:将函数外部的数据传到函数里边
        形参个数:看实现函数功能需要几个就给几个形参
     -  实参列表
        实参就是通过形参传递到函数中使用的数据
        实参有多少个看形参有多少个

4.调用函数 - 函数名(实参列表)

5.函数调用过程:

        当程序执行到调用函数语句的时候:
        第一步:回到函数定义的位置
        第二步;传参(用实参给形参赋值),传参的时候必须保证每个参数都有值
        第三步:执行函数体
        第四步:确定函数返回值(下周才讲)
        第五步:回到函数调用的位置接着往后执行

练习1:定义一个函数统计字符串中中文的个数

def chinese_count(string):
    count = 0
    for x in string:
        if '\u4e00' <= x <= '\u9fa5':
            count += 1
    print(count)
    
chinese_count('sjj十几年ss82数据库')

练习2:定义一个函数将指定列表中的元素逆序

def reverse_list(list1):
    print(list1[::-1])


reverse_list([23, 90, 89])

练习3:定义一个函数删除指定字符串中指定字符

def del_char(string, char):
    new_str = ''.join([x for x in string if x != char])
    print(new_str)
    
del_char('ajsjjskakaaas', 'a')

练习4:定义一个函数将两个字符串中的字符交叉合并:‘abc’、‘123’ -> a1b2c3 ‘abc’、‘123456’ ->a1b2c3456

def crisscross_merge(str1, str2):
    new_str = ''
    l1, l2 = len(str1), len(str2)
    if l1 > l2:
        l1, l2 = l2, l1

    for index in range(l1):
        new_str += str1[index] + str2[index]

    new_str += str1[l1:] + str2[l1:]
    print(new_str)

列表基础练习题

选择题

  1. 下列选项中能正确表示一个列表的是(D)。

    A.{1, 2, 3}

    B.[10, abc, 123]

    C. [10 20 30]

    D.[1, 2, 3]

  2. (多选)已知一个列表nums = [10, 20, '小明', [1, 2]],以下表达式结果是小明的是?(CD)

    A. nums[-3]

    B. nums[3]

    C.nums[-2]

    D. nums[2]

  3. 以下选项关于列表说法错误的是?(C)

    A. 列表可以放在for循环的in后面

    B. 列表是可变的序列

    C. 列表是有序的,只支持增删改,不支持查操作

    D. 列表的in操作可以判断元素是否存在

  4. 已知一个列表names = ['小乔', '甄姬', '王昭君', '妲己', '女娲', '西施', '嬴政'],下面的表达式中结果是[]的是?(C)

    A. names[1:]

    B. names[:1]

    C. names[1:4:-1]

    D. names[1:4:2]

  5. 已知列表list1 = [10, [1, 2], 100, 1000],下列表达式结果是True的是?(D)

    A. 100 not in list1

    B. 1 in list1

    C. 2 in list1

    D. [1, 2] in list1

  6. 下列选项中不属于序列的是?(BCD)

    A. []

    B. ‘100’

    C. {1, 2}

    D. 100

  7. 已知student = {'name': '小明', 'age': 18, 'gender':'男'}下列关于字典的操作正确的是?(D)

    A. student('name')

    B. student[name]

    C. student['小明']

    D. student['age']

  8. 下列表达式有误的是?(D)

    A. 100 + 30.03

    B. 188 * '12'

    C. 188 * 12

    D. 188 + '12'

  9. (多选)下列表达式能产生[1, 2, 3]的是?(AD)**************************不会

    A. [1, 2] + [3]

    B. [1, 2].append(3)

    C. [1, 2].extend(3)

    D. [1, 2, 3] * 1

  10. (多选)下列选项中属于可变序列的是?(AC)

    A. 列表

    B. 元组

    C. 字典

    D. 字符串

填空题

  1. python中获取指定数据的类型可以使用( type() )函数。
  2. 查看数据地址的函数是( id() )。
  3. 如果要将数据转换成列表,需要使用( list() )。
  4. ( len() )函数可以用来获取任意序列中元素的个数。
  5. 如果需要将一个数据插入到列表的中间需要使用函数(insert() )。
  6. Python中数学集合运算中求交集、并集、差集和对称差集的符号分别是( & )、(| )、( - )、( ^ )。
  7. 请列举出你知道的Python中的不可变的数据类型:( 整型,字符串,元组 )。
  8. 获取字符编码值和获取编码值对应的字符的函数分别是( ord() )、( chr() )。
  9. 如果要判断序列中是否存在某个元素可以使用( in )来判断。
  10. 如果要判断两个数据的地址是否相等可以使用( id(a)==id(b) )。

编程题

  1. 已知一个列表names = ['胡歌', '王凯', '王俊凯', '杨幂', '刘德华', '张国荣', '王祖贤', '张伟']

    1)依次打印列表中的每个元素

    2)统计列表中姓的人的个数。

    3)统计名字是两个字的人的个数。

names = ['胡歌', '王凯', '王俊凯', '杨幂', '刘德华', '张国荣', '王祖贤', '张伟']
count1=0
count2=0
for i in range(len(names)):
    print(names[i])
    if names[i][0]=='张':
        count1+=1
    if len(names[i])==2:
        count2+=1
print(f'{count1}人姓"张",名字是两个字的有{count2}人')

结果:
在这里插入图片描述

  1. 已知字典dog = {'name': '大黄', 'color': 'yellow', 'age': 3, 'kind': '土狗'}

    1)打印所有key对应的值

    2)将name的值修改成 ‘旺财’

    3)添加狗的价格对应的键值对

    4)清空dog字典

dog = {'name': '大黄', 'color': 'yellow', 'age': 3, 'kind': '土狗'}
for x in dog:
    print(dog[x])
dog['name']='旺财'
print(dog)
dog.setdefault('price',10000)
print(dog)
dog.clear()
print(dog)

结果:
在这里插入图片描述

  1. 已知字符串message = 'You see see, one day day!'

    1)统计字符串中非字母的字符个数

    2)提取出所有的小写字母

标签:格式化,函数,Python,3.12,列表,字符串,num,print,name
来源: https://blog.csdn.net/qq_33489955/article/details/114706828

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有