python-03(入门基础篇3——字符串 的 基本常见语法 以及 format的用法)

news2024/12/23 17:26:46

python-03(入门基础篇3——字符串 的 基本常见语法 以及 format的用法)

  • 1. 前言
    • 1.1 体验python入门
    • 1.2 官网参考
  • 2. 字符串简单入门
    • 2.1 简单介绍
    • 2.2 拼接字符串(+)和 重复字符串(*)
    • 2.3 相邻字符串自动拼接
    • 2.4 换行输入字符串的方法
    • 2.5
  • 3. 索引 和 分片
    • 3.1 索引
    • 3.2 分片
      • 3.2.1 切片常用语法 + 例子
      • 3.2.2 总结
        • 3.2.2.1 使用总结
        • 3.2.2.2 使用总结的例子
  • 4. 字符串常见方法
    • 4.1 split()
    • 4.2 index()
    • 4.3 count()
  • 5. printf 样式的字符串格式化
    • 5.1 str.format()
      • 5.1.1 按位置访问参数
      • 5.1.2 通过名称访问参数
      • 5.1.3 通过位置和名称混合使用来访问参数
      • 5.1.4 访问参数的项(以及`*`的使用)
        • 5.1.4.1 元组使用
        • 5.1.4.2 列表使用
        • 5.1.4.3 用字典传参
        • 5.1.4.4 混合使用
        • 5.1.4.5 附:按位置时(*)
        • 5.1.4.6 总结:`*`的注意使用方法
    • 5.2 printf 样式的字符串格式化
      • 5.2.1 语法 + 例子
      • 5.1.5 对齐
      • 5.1.6 `:`号使用
      • 5.1.7 官方文档
      • 5.2.2 总结

1. 前言

1.1 体验python入门

  • 关于 python 的入门,可以看下面的两篇文章,体验一下 python 语言的简洁语法,如下
  • python-01(入门基础篇)
  • python-02(入门基础篇2——基本常见语法)

1.2 官网参考

  • 接下来针对字符串相关的语法做点练习,相关方法,太多,下面将针对性地做些简单的练习,当然也可以自己去官网看语法进行练习,官网地址如下:
    https://docs.python.org/3.11/tutorial/index.html.
    在这里插入图片描述
  • 关于数字类型的就不用介绍了,比较简单,感兴趣的话,看上面两篇文章就行,也可以直接看官网上的简单例子,如下:
    在这里插入图片描述

2. 字符串简单入门

2.1 简单介绍

  • Python可以操作文本(由str类型表示,即所谓的“字符串”)和数字。这包括字符“!,单词“rabbit”,名字“Paris”,句子“get you back”。等等。“耶!😃”。它们可以用单引号(‘…’)或双引号(“…”)括起来,结果相同。
  • 关于转义字符,看上面第一篇入门篇即可
    在这里插入图片描述

2.2 拼接字符串(+)和 重复字符串(*)

  • 如下:
    'un' + 'ium'
    'unium'
    
    'un' * 2
    'unun'
    
    3 * 'un'
    'ununun'
    
    3 * 'un' + 'ium'
    'unununium'
    
    在这里插入图片描述

2.3 相邻字符串自动拼接

  • 相邻的两个或多个字符串字面值(即括在引号之间的字面值)会自动连接起来。但是需要注意的是:此方法只适用于两个字面量,而不适用于变量或表达式。如下:

    'lo' 've'
    'love'
    
    'p' 'y' 'th''on'
    'python'
    

    在这里插入图片描述

  • 如果你想连接变量或者一个变量和一个字面值,使用+,如下:
    在这里插入图片描述

2.4 换行输入字符串的方法

  • 当你想要中断长字符串时(即:换行输入时),将几个字符串放在括号内,以便将它们连接在一起。如下:
    在这里插入图片描述

2.5

3. 索引 和 分片

3.1 索引

  • 字符串可以根据索引(下标)取值,第一个字符的索引为0。没有单独的字符类型;一个字符就是一个简单的字符串。
  • 简单使用如下:
    • 例1:
      mesg = '我爱北京天安门'
      mesg[0]
      '我'
      
      mesg[2]
      '北'
      
    • 例2: 获取字符串的长度、以及最后一个字符的取法,如下:
      len(mesg)
      
      mesg[6]
      
      mesg[-1]
      
      mesg[len(mesg)-1]
      
      在这里插入图片描述
  • 循环打印如下:
    for i in mesg:
        print(i , end=' ')
    
    for i in range(len(mesg)):
        print(mesg[i],end='|')
    
    在这里插入图片描述

3.2 分片

  • 索引用于获取单个字符,但切片允许您获取子字符串

3.2.1 切片常用语法 + 例子

  • 语法如下:
    • mesg[m,n],从索引位置m(包括)到索引n(不包括)的字符,即左闭右开取字符。
    • mesg[:4],字符从开头到索引位置4(不包含下标4)
      mesg[:-1],字符从开头到索引位置-1(不包含下标-1),即:相当于截取掉最后一个字符。
    • mesg[-5:],倒着取5个字符(最后一个下标为-1,往前直到-5开始取)
    • mesg[2:],从位置2开始取(包含位置2),一直取到末尾的字符
    • mesg[1:6:2],从位置1开始,到位置6(左闭右开),跨度为2
  • 例子如下:
    在这里插入图片描述
    在这里插入图片描述

3.2.2 总结

3.2.2.1 使用总结

  1. 开头总是包括在内,结尾总是不包括在内。这确保了s[:i] + s[i:] 总是等于s
  2. mesg[:],相当于mesg[0:7]的使用语法,由于是从头开始到结束,所以头尾两端都可以省略,最后只剩下一个 : 了。
  3. 倒排序
    mesg[::-1]
    
    mesg[-1:0:-1],从位置-1开始取,以跨度为-1,取到0的位置,实现倒序
    

3.2.2.2 使用总结的例子

  • 如下:
    在这里插入图片描述

4. 字符串常见方法

  • 首先,参考官网,因为方法挺多的,官网地址:
    https://docs.python.org/3.11/library/stdtypes.html#textseq.
  • 下面简单写几个,剩下的用到去官网拿

4.1 split()

  • 如下:

     '1.2.3.4'.split('.')
     '1.2.3.4'.split('.',maxsplit=2)
    

    在这里插入图片描述

4.2 index()

  • 返回下标索引的位置,如下:
    在这里插入图片描述

4.3 count()

  • 统计字符出现的个数,左闭右开,如下
    在这里插入图片描述
  • 好了,就简单几个吧,毕竟方法有点多,用到再说!

5. printf 样式的字符串格式化

5.1 str.format()

  • 用于格式化字符串。可以接受无限个参数,可以指定顺序。返回结果为字符串。

5.1.1 按位置访问参数

  1. 不设置位置,不指定顺序,默认由左到右,如下:

    '{}, {}, {}'.format('a', 'b', 'c')
    'a, b, c'
    
    'There are {} nationalities in {}'.format('56','China')
    'There are 56 nationalities in China'
    

    在这里插入图片描述

  2. 指定位置,如下:

    '{2}, {1}, {0}'.format('a', 'b', 'c')
    'c, b, a'
    
    '{1}, {2}, {0}'.format('a', 'b', 'c')
    'b, c, a'
    
    'There are {1} nationalities in {0}'.format('China','56')
    'There are 56 nationalities in China'
    

    在这里插入图片描述

  3. 参数的索引可以重复,如下:

    '{0}{0}{1}'.format('1','0')
    '110'
    
    '{1}{0}{1}{1}'.format('0','2')
    '2022'
    
    '{0}{0}'.format('bala')
    'balabala'
    

    在这里插入图片描述

5.1.2 通过名称访问参数

  • 如下:
    'There are {number} nationalities in {country}'.format(country='China',number='56')
    'There are 56 nationalities in China'
    
    在这里插入图片描述

5.1.3 通过位置和名称混合使用来访问参数

  • 语法如下:

    'There are {0} nationalities in {country},and it is very {1}'.format('56','greate and strong',country='China')
          
    'There are 56 nationalities in China,and it is very greate and strong'
    

    在这里插入图片描述

  • 注意问题,所有按位置的必须放在按名称的前面,否则报下名的错误,如下:

    SyntaxError: positional argument follows keyword argument
    

    在这里插入图片描述

5.1.4 访问参数的项(以及*的使用)

5.1.4.1 元组使用

  • 非*使用,如下:
    coord = (1,3,2)
    'X: {0[0]};  Y: {0[1]}; z: {0[2]}'.format(coord)
    
    info = ('56','China','greate and strong')
    'There are {0[0]} nationalities in {0[1]},it is very {0[2]}'.format(info)
    
    在这里插入图片描述
  • *的使用如下:
    在这里插入图片描述
  • 多元组参数使用,如下:
    • 语法如下:
      str1 = ('I','love','you')
            
      str2 = ('he','hate','you')
            
      '{0[0]} {0[1]} {0[2]},but {1[0]} {1[1]} {1[2]}'.format(str1,str2)
            
      'I love you,but he hate you'
      
      
      '{} {} {},but {} {} {}'.format(*str1,*str2)
            
      'I love you,but he hate you'
      
      在这里插入图片描述
    • 说明:
      传入的参数中指定位置“0[1]”表示 str1 这个参数,0表示第一个参数即str1,而0[1]中的1是表示str1中的第2个位置的值。‘1[0]’是表示第二个参数 str2 的第一个值

5.1.4.2 列表使用

  • 列表的使用,与上面元组的使用几乎一样,简单截图看看,如下:
    在这里插入图片描述

5.1.4.3 用字典传参

  • 如下:
    info = {'number':'56','country':'China'}
          
    'There are {number} nationalities in {country}'.format(**info)
          
    'There are 56 nationalities in China'
    
    
    info2 = {'number':'56','country':'China','desc':'greate and strong'}
          
    'There are {number} nationalities in {country},and it is very {desc}'.format(**info2)
          
    'There are 56 nationalities in China,and it is very greate and strong'
    
    在这里插入图片描述

5.1.4.4 混合使用

  • 注意:位置参数要在关键字参数前面,元组要在字典前面,如下:

    str1 = ('come','on')
          
    list1 = ['you','me','she','he']
          
    games = {'game1':'扑克','game2':'王者'}
          
    
    '听说,{2} 喜欢{game2},你知道吗'.format(*list1,**games)
          
    '听说,she 喜欢王者,你知道吗'
    
    '听说,{0[2]} 喜欢{game2},你知道吗'.format(list1,**games)
          
    '听说,she 喜欢王者,你知道吗'
    
    
    
    '听说,{0} 和 {1[0]} 一样,都喜欢{game2},你知道吗'.format('lucy',list1,**games)
          
    '听说,lucy 和 you 一样,都喜欢王者,你知道吗'
    
    
    
    
    '听说,{0} 和 {0} 一样,都喜欢{game2},你知道吗'.format('lucy',*list1,**games)
          
    '听说,lucy 和 lucy 一样,都喜欢王者,你知道吗'
    
    
    '听说,{0} 和 {1{0}} 一样,都喜欢{game2},你知道吗'.format('lucy',*list1,**games)
    

    在这里插入图片描述

5.1.4.5 附:按位置时(*)

  • 如下:
    '{2}, {1}, {0}'.format(*'abc')
          
    'c, b, a'
    
    在这里插入图片描述

5.1.4.6 总结:*的注意使用方法

  1. 对于 list1 = ['you','love','me']
    在不使用*的时候,用{0[1]}这中格式取值,这里的0指第一个参数list1,这里的1是list1里位置是1的数据(即:此处是love),{0[0]}取出来就是you
    如下:

    '{0[0]}'.format(list1)
          
    'you'
    

    在这里插入图片描述

  2. 的如果使用*的话,在下面语句中,{0[2]} 中的 0 指的是 list1 中的位置为 0 的数据(即you),2指的是 you 这个字符串的下标为 2 的字符==,如下:

    list1 = ['you','love','me']
    '{0[2]}'.format(*list1)
    

    在这里插入图片描述

5.2 printf 样式的字符串格式化

5.2.1 语法 + 例子

  • 语法例子如下:
    print('%(language)s' %{'language':"chinese"})
    print('%(number)04d' %{"number":3})
    print('%(number)f' %{"number":5})
    print('There are %(number)d nationalities in %(country)s' %{'number':56,'country':"China"})
    ……
    
    在这里插入图片描述

5.1.5 对齐

  • 官网例子,如下:
    在这里插入图片描述
  • 效果如下:
    '{:<30}'.format('left aligned')
    '{:>30}'.format('right aligned')
    '{:^30}'.format('centered')
    '{:*^30}'.format('centered')
    
    在这里插入图片描述

5.1.6 :号使用

  • :号替换%,替换%+f%-f% f并指定一个符号
# show only the minus -- same as '{:f}; {:f}'
'{:-f}; {:-f}'.format(3.14, -3.14)  

在这里插入图片描述

  • 使用逗号作为千位分隔符:
    '{:,}'.format(1234567890)
    
    在这里插入图片描述

5.1.7 官方文档

  • 好了,更多内容请参考官网:
    https://docs.python.org/3.11/library/string.html#formatstrings.

5.2.2 总结

  • 长度修饰符 (h, l, or L)可能存在,但会被忽略,因为Python不需要它-例如%ld与%d相同。
  • 转换类型有:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/893887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

凭空销毁千万,揭秘nd4.eth大佬背后的故事

文/章鱼哥 出品/陀螺财经 在加密社区&#xff0c;千万资产的销毁&#xff0c;就在弹指之间&#xff0c;好似一场行为艺术。 上周&#xff0c;nd4.eth域名的不明持有者在没有任何公开解释的前提下销毁了价值约800余万美元的加密货币和高价值蓝筹NFT&#xff0c;引起了看客们的关…

区块链中slot、epoch、以及在slot和epoch中的出块机制,分叉原理(自己备用)

以太坊2.0中有两个时间概念&#xff1a;时隙槽slot 和 时段&#xff08;周期&#xff09;epoch。其中一个slot为12秒&#xff0c;而每个 epoch 由 32 个 slots 组成&#xff0c;所以每个epoch共384秒&#xff0c;也就是 6.4 分钟。 对于每个epoch&#xff0c;使用RANDAO伪随机…

时序预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机时间序列预测

时序预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机时间序列预测 目录 时序预测 | MATLAB实现SA-ELM模拟退火算法优化极限学习机时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SA-ELM模拟退火算法优化极限学习机时间序列预测 程序设计 完整…

windows上的docker自动化部署到服务器脚本

1、mvn install后&#xff0c;双击这个bat&#xff0c;实现docker build后上传到124服务器&#xff0c;并且重启124服务器 **echo offsetlocal:: 定义镜像名称和版本变量 set IMAGE_NAMEweb set IMAGE_VERSION1.3.1:: 清理本地文件 echo Cleaning up... del service-%IMAGE_N…

产品管理:理解、掌握要点

产品管理是什么&#xff1f; 产品管理是指通过使用各种方法和技术&#xff0c;有效地规划、组织、控制和监督整个产品生命周期的过程。它涉及到从产品的概念阶段开始一直到产品的上市和销售阶段的各个环节。在当今竞争激烈的市场中&#xff0c;一个成功的产品管理过程对企业的…

Vue学习笔记--004

Vue学习 一、scoped解决样式冲突 写在组件中的样式会 全局生效 → 因此很容易造成多个组件之间的样式冲突问题。 全局样式: 默认组件中的样式会作用到全局&#xff0c;任何一个组件中都会受到此样式的影响 局部样式: 可以给组件加上scoped 属性,可以 让样式只作用于当前组件 …

简单的洗牌算法

目录 前言 问题 代码展现及分析 poker类 game类 Text类 前言 洗牌算法为ArrayList具体使用的典例&#xff0c;可以很好的让我们快速熟系ArrayList的用法。如果你对ArrayList还不太了解除&#xff0c;推荐先看本博主的ArrayList的详解。 ArrayList的详解_WHabcwu的博客-CSD…

nn.embedding会被反向传播更新吗?

https://developer.aliyun.com/article/1191215 这样是不可更新&#xff0c;但被我注释掉了。

【C++ 学习 ⑭】- 详解 stack、queue 和 priority_queue 容器适配器

目录 一、详解 C STL 容器适配器 1.1 - 什么是容器适配器&#xff1f; 1.2 - 容器适配器的种类 二、详解 C STL deque 容器 2.1 - deque 的原理介绍 2.2 - deque 的优缺点 三、详解 stack 容器适配器 3.1 - stack 的基本介绍 3.2 - stack 的成员函数 3.3 - stack 的模…

live555在Windows WSL2中编译、运行,搭建RTSP流服务器

文章目录 1. 背景2. 实施步骤2.1 下载live555安装包2.2 解压压缩包2.3 编译源码2.3 安装ffmpeg2.4 安装opencv-python2.5 视频文件格式转换2.6 启动推流2.6 安装VLC&#xff0c;验证 3. 用opencv-python接口接收视频流参考 1. 背景 想要通过RTSP往opencv的接口中推流&#xff…

富文本中的参数如何设置大小?

富文本里如果直接显示的数据可以随意调节大小,颜色等格式. 但是如果数据是动态的参数 就无法随意设置参数的格式了.当字数过多时就会出现显示不全,有没有大佬知道如何解决? wangEditor set HTML

Flink 数据集成服务在小红书的降本增效实践

摘要&#xff1a;本文整理自实时引擎研发工程师袁奎&#xff0c;在 Flink Forward Asia 2022 数据集成专场的分享。本篇内容主要分为四个部分&#xff1a; 小红书实时服务降本增效背景Flink 与在离线混部实践实践过程中遇到的问题及解决方案未来展望 点击查看原文视频 & 演…

【学习笔记之vue】These dependencies were not found:

These dependencies were not found:方案一 全部安装一遍 我们先浅试一个axios >> npm install axios 安装完报错就没有axios了&#xff0c;验证咱们的想法没有问题&#xff0c;实行&#xff01; ok

chapter 3 Free electrons in solid - 3.2 量子自由电子理论对一些现象的解释

3.2 自由电子气的热容 Heat capacity of free electron gas 3.2.1 计算自由电子的热容 Calculation of Heat Capacity of free Electrons T>0K, total energy of free electrons: E ∫ E d N 3 5 N e E F 0 [ 1 5 12 π 2 ( k B T E F 0 ) 2 ] E \int EdN \frac{3}{5}…

Unable to find resource t64.exe in package pip._vendor.distlib报错问题解决

Unable to find resource t64.exe in package pip._vendor.distlib报错问题解决 问题报错具体内容具体解决方案解决方法一解决方法二 问题报错具体内容 想要对python的版本进行一个升级,使用如下语句 python -m pip install --upgrade pip出现如下报错 Unable to find reso…

四维轻云场景更新之后,如何快速搭建场景?

「四维轻云」是一款轻量化的地理空间数据管理云平台&#xff0c;支持地理空间数据的在线管理、编辑以及分享。平台提供了项目管理、数据上传、场景搭建、发布分享、素材库等功能模块&#xff0c;支持团队多用户在线协作管理。 四维轻云平台是以项目的形式进行数据管理&#xf…

vue2中常用的组件封装技巧

文章目录 vue组件封装技巧1.props参数2.$attrs3.$emit4.$listeners5.插槽 vue组件封装技巧 1.props参数 最简单父传子的技巧&#xff0c;在父组件传入值&#xff0c;子组件声明props接收就可以了 如下&#xff1a; 父组件&#xff1a; <template><div id"ap…

两图看懂什么叫回调函数,使用回调函数实现多态

#include <stdio.h> //任务函数可以增加&#xff0c;任务使用框架函数保持不变&#xff0c;根据传入函数指针的不同调用不同的任务函数&#xff0c;从而实现了多态 //编写任务函数&#xff0c;任务函数可以增加 int Myadd1(int a, int b) { return ab; } int Mymux2(i…

Git 设置代理

Git 传输分两种协议&#xff0c;SSH和 http(s)&#xff0c;设置代理也需要分两种。 http(s) 代理 Command Line 使用 命令行 模式&#xff0c;可以在Powershell中使用以下命令设置代理&#xff1a; $env:http_proxy"http://127.0.0.1:7890" $env:https_proxy&quo…

【LeetCode】买卖股票的最佳时机最多两次购买机会

买卖股票的最佳时机 题目描述算法分析程序代码 链接: 买卖股票的最佳时机 题目描述 算法分析 程序代码 class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();vector<vector<int>> f(n,vector<int>(3,-0x3f3f3f))…