当前位置: 首页 > news >正文

Python基础教程(二)字符串和函数

6.字符串

6.1 字符串的表示方式

6.1.1 普通字符串

普通字符串指用单引号('')或双引号(”")括起来的字符串。例如:'Hello'或"Hello"

>>> 'Hello'
'Hello'
>>> "Hello"
'Hello'
>>> s='\u0048\u0065\u006c\u006c\u006f'
>>> s
'Hello'
>>> "Hello'world"
"Hello'world"
>>> 'Hello"world'
'Hello"world'

6.1.2 原始字符串

在 Python 中,以字母 r 或者 R 作为前缀的字符串,例如 r'...'和R'...',被称为原始字符串。

>>> s='hello\tworld\nPython\t3'
>>> print(s)
hello	world
Python	3
>>> s=r'hello\tworld\nPython\t3'
>>> print(s)
hello\tworld\nPython\t3

6.1.3 长字符串

使用三个单引号(''')或三个双引号(""")括起来.

>>> s='''xxxbfdzbddfbddfbd'''
>>> s
'\n        xxx\n        bfdzbd\n        dfbd\n        dfbd\n        '
>>> print(s)xxxbfdzbddfbddfbd

6.2 字符串与数字相互转换

6.2.1 将字符串转换为数字

>>> int("10")
10
>>> int("10.2")    #类型不同不能转换
Traceback (most recent call last):File "<pyshell>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '10.2'
>>> float("10.2")
10.2
>>> int("ab")    #类型不同不能转换
Traceback (most recent call last):File "<pyshell>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'ab'
>>> int("ab",16)    #按十六进制进行转换
171

6.2.2 将数字转换为字符串

>>> str(12)
'12'
>>> str(12.3)
'12.3'
>>> str(True)
'True'

6.3 格式化字符串

Python的字符串可通过占位符%、format ()方法和f-strings三种方式实现格式化输出。

6.3.1 占位符%

>>> name='xiaoqian'
>>> 'nihao,wojiao%s' % name
'nihao,wojiaoxiaoqian'
>>> age=20
>>> 'nihao,wojiao%s,今年%d岁'%(name,age)
'nihao,wojiaoxiaoqian,今年20岁'

6.3.2 format()方法

<字符串>.format (<参数列表>)

>>> name='小强'
>>> age=20
>>> '你好,我叫{},今年我{}岁了。'.format(name,age)
'你好,我叫小强,今年我20岁了。'
>>> '你好,我叫{1},今年我{0}岁了。'.format(age,name)    #可以指定参数序号顺序
'你好,我叫小强,今年我20岁了。'

format (方法还可以对数字进行格式化,包括保留n位小数、数字补齐和显示百分比。
①保留 n位小数。格式为“{:.nf}”
②数字补齐。格式为“{:m>nd]”,其中m 表示补齐的数字,n 表示补齐后数字的长度,>表示在原数字左侧进行补充。
③显示百分比。可以将数字以百分比形式显示。其格式为“{:.n%)”,其中n 表示保留的小数位。

>>> pi=3.1415
>>> '{:.2f}'.format(pi)
'3.14'
>>> num=1
>>> '{:0>3d}'.format(num)
'001'
>>> num
1
>>> num=0.1
>>> '{:.0%}'.format(num)
'10%'

6.3.3 f-strings

>>> addr='广州'
>>> f'欢迎来到{addr}'
'欢迎来到广州'
>>> name='小强'
>>> age=20
>>> gender='男'
>>> f'我的名字是{name},今年{age}岁,性别{gender}。'
'我的名字是小强,今年20岁,性别男。'

6.4 操作字符串

6.4.1 字符串拼接

>>> str_one='人生苦短,'
>>> str_two='我用python。'
>>> str_one+str_two
'人生苦短,我用python。'
>>> str_three=12
>>> str_one+str_three    #类型要一样
Traceback (most recent call last):File "<pyshell>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> str_one+str(str_three)
'人生苦短,12'

6.4.2 字符串查找

str.find(sub[,start[,end]])查找子字符串,在索引start到end之间查找子字符串sub,如果找到,则返回最左端位置的索引;如果没有找到,则返回-1。

6.4.3 字符串替换

str.replace(old,new, count=None)字符串替换,new子字符串替换old子字符串。count参数指定了替换old子字符串的个数,count被省略,则替换所有old子字符串。

>>> word='我是小强,我今年20岁。'
>>> word.replace('我','他')
'他是小强,他今年20岁。'
>>> word.replace('我','他',1)
'他是小强,我今年20岁。'
>>> word.replace('他','你')
'我是小强,我今年20岁。'

 6.4.4 字符串分割

str.splite(sep=None,maxsplit=-1),使用sep子字符串分割字符串str,返回一个分割以后的字符串列表。maxsplit是最大分割次数,如果maxsplit被省略,则表示不限制分割次数。

>>> word="1 2 3 4 5"
>>> word.split()
['1', '2', '3', '4', '5']
>>> word="a,b,c,d,e"
>>> word.split(',')
['a', 'b', 'c', 'd', 'e']
>>> word.split(',',3)
['a', 'b', 'c', 'd,e']

 6.4.5 去除字符串两侧空格

str.strip(chars=None),一般用于去除字符串两侧的空格,参数chars用于设置要去除的字符,默认要去除的字符为空格

>>> word=' strip '
>>> word.strip()
'strip'
>>> word='**strip*'
>>> word.strip('*')
'strip'

 7.函数

7.1 定义函数

def 函数名([参数列表]):
        ["函数文档字符串"]
        函数体
        [return 语句]

>>> def rect_area():print("*" * 13)print('长方形面积:%d'%(12*2))print("*" * 13)>>> rect_area    #函数地址
<function rect_area at 0x0391C270>
>>> rect_area()    #函数调用
*************
长方形面积:24
*************
>>> def rect_area(width,heigth):area=width*heigthreturn area>>> print(rect_area(10,2))
20

 7.2 调用函数

函数名([参数列表])

>>> def rect_area():print("*" * 13)print('长方形面积:%d'%(12*2))print("*" * 13)>>> rect_area    #函数地址
<function rect_area at 0x0391C270>
>>> rect_area()    #函数调用
*************
长方形面积:24
*************

7.3 函数参数传递

7.3.1 位置参数 

>>> def division(num_one,num_two):print(num_one/num_two)>>> division(6,2)    #传递的参数与定义的参数一一对应
3.0

7.3.2 关键字参数 

>>> def division(num_one,num_two):print(num_one/num_two)>>> division(num_one=10,num_two=2)
5.0

 7.3.3 默认参数

默认的参数要放到参数列表的最后面,否则会报错

>>> def info(name,age,sex='男'):print(f'姓名:{name}')print(f'年龄:{age}')print(f'性别:{sex}')>>> info(name='xiao',age=20)
姓名:xiao
年龄:20
性别:男
>>> info('xiao',20)
姓名:xiao
年龄:20
性别:男
>>> info(name='xiao',age=20,sex='女')
姓名:xiao
年龄:20
性别:女
>>> def info(name,sex='男',age):print(f'姓名:{name}')print(f'年龄:{age}')print(f'性别:{sex}')File "<pyshell>", line 1
SyntaxError: non-default argument follows default argument

 7.3.4 不定长参数

def 函数名([formal_args,] *args, **kwargs):        #两个参数可以同时存在
        ["函数文档字符串"]
        函数体
        [return 语句]

①*args:接收的参数按原始方式保存

>>> def test(*args):print(args)>>> test(1,2,3,'a','b')
(1, 2, 3, 'a', 'b')

②**kwargs:接收的参数按字段(键值对)方式保存

>>> def test(**kwargs):print(kwargs)>>> test(a=1,b=2,c=3,d='a',e='b')
{'a': 1, 'b': 2, 'c': 3, 'd': 'a', 'e': 'b'}

 7.4 变量作用域

7.4.1 局部变量

>>> def use_var():name='python'print(name)>>> use_var()
python
>>> print(name)   #name是局部变量,作用在use_var函数内
Traceback (most recent call last):File "<pyshell>", line 1, in <module>
NameError: name 'name' is not defined
>>> 

 7.4.2 全局变量

>>> count=10    #定义一个全局变量
>>> def use_var():print(count)>>> use_var()
10
>>> def use_var():global count        #声明count是全局变量,不声明会报错count+=10print(count)>>> use_var()
20
>>> def use_var():count+=10print(count)>>> use_var()
Traceback (most recent call last):File "<pyshell>", line 1, in <module>File "<pyshell>", line 2, in use_var
UnboundLocalError: local variable 'count' referenced before assignment
>>> print(count)
20

 7.5 函数特殊形式

7.5.1 匿名函数

匿名函数是一种不需要命名的函数。它通常用于简单的函数操作,可以在需要时直接定义和使用,而不需要为其分配一个特定的名称。匿名函数在很多编程语言中都存在,例如Python、JavaScript和Ruby等。在Python中,使用lambda关键字来定义匿名函数。

lambda [argl [,arg2,...argn]]:expression

[argl [,arg2,...argn]]:参数列表

expression:单一的函数表达式,用于实现简单的功能

>>> area=lambda a,h:(a*h)*0.5
>>> print(area)
<function <lambda> at 0x0380EBB8>
>>> print(area(3,4))
6.0

 7.5.2 递归函数

递归函数是指在函数的定义中使用函数自身的一种编程技巧。简单来说,递归函数是通过调用自身来解决问题的函数。

>>> def factorial(num):if num==1:return 1else:return num*factorial(num-1)>>> factorial(5)
120

 7.6 常用内置函数

abs(): 计算绝对值,其参数必须是数字类型。
len(): 返回序列对象 (字符串、列表、元组等) 的长度。
map(): 根据提供的函数对指定的序列做映射。
help(): 用于查看函数或模块的使用说明。
ord(): 用于返回 Unicode 字符对应的码值。
chr():与 ord0功能相反,用于返回码值对应的 Unicode 字符。
filter(): 用于过滤序列,返回由符合条件的元素组成的新列表

>>> abs(-5)
5
>>> abs(3.14)
3.14
>>> len('python')
6
>>> ord('A')
65
>>> chr(65)
'A'
>>> help(len)
Help on built-in function len in module builtins:len(obj, /)Return the number of items in a container.>>> 

相关文章:

Python基础教程(二)字符串和函数

6.字符串 6.1 字符串的表示方式 6.1.1 普通字符串 普通字符串指用单引号()或双引号(”")括起来的字符串。例如:Hello或"Hello" >>> Hello Hello >>> "Hello" Hello >>> s\u0048\u0065\u006c\u006c\u006f >>> …...

智算新风向丨趋动科技获中国信通院泰尔实验室首张智算资源池化能力泰尔测评证书

近日&#xff0c;趋动科技“OrionX AI算力资源池化软件”经中国泰尔实验室依据《FG-Z14-0172-01智算资源池化平台测试方案》评估测试&#xff0c;获得智算资源池化能力泰尔测评证书&#xff0c;成为该领域首个完成此评价的产品。 图1.OrionX通过智算资源池化平台评测 随着AI大…...

计算机基础(Windows 10+Office 2016)教程 —— 第4章 计算机网络与Internet(上)

第4章 计算机网络与Internet 4.1 计算机网络概述4.1.1 计算机网络的定义4.1.2 计算机网络的发展4.1.3 计算机网络的功能4.1.4 计算机网络体系结构和TCP/IP 参考模型 4.2 计算机网络的组成和分类4.2.1 计算机网络的组成4.2.2 计算机网络的分类 4.3 网络传输介质和通信设备4.3.1 …...

MES系统在数字化转型中的核心作用与影响

数字化转型是企业利用数字技术改变其业务模式、运营方式、组织结构、产品服务等方面的过程&#xff0c;旨在提高效率、降低成本、增强竞争力并实现可持续发展。数字化转型涉及多个层面&#xff0c;主要包括以下几个方面&#xff1a; 数字化转型转什么 转战略&#xff1a;由构…...

装修施工注意事项

1 地漏保护 咋墙拆改时&#xff0c;一定要用保护盖把所有的地漏下水管道都拧紧 2 卫生间防水做完&#xff0c;必须要先用水泥砂浆做好保护层再贴&#xff0c;不然后续施工&#xff0c;不小心破坏防水层&#xff0c;以后漏水后悔都晚了。 3 入户门口处&#xff0c;一定要用…...

【Docker学习记录】

Docker学习记录 目录 1. Windows上使用wsl1.1 安装docker后遇到的一些疑惑1.2. wsl的一些相关命令1.3. 补一点&#xff0c;wsl的作用 2. docker一些常用的命令2.1 构建docker镜像2.2 运行镜像 3. Dockerfile的编写3.0 docker的一些概念3.0.1 容器的分层3.0.2 COPY-ON-WRITE 3.…...

互联网政务应用安全管理规定

互联网政务应用安全管理规定 &#xff08;2024年2月19日中央网络安全和信息化委员会办公室、中央机构编制委员会办公室、工业和信息化部、公安部制定 2024年5月15日发布&#xff09; 第一章 总则 第一条为保障互联网政务应用安全&#xff0c;根据《中华人民共和国网络安全法…...

HarmonyOS开发商城首页实现

目录 一:功能概述 二:代码实现 三:效果图 一:功能概述 这一节我们主要在鸿蒙OS系统中实现的一个底部导航功能,并在首页底部使用TabSwitch组件进行导航切换。同时,首页采用Search组件实现商品搜索框,Scroll和Swiper组件实现图片轮播功能,以展示推荐内容或图片。 1:…...

QtQuick Text-文本样式

属性 Text项目的style属性可以设置文本的样式。 支持的文本样式有&#xff1a; Text.Normal&#xff08;默认&#xff09;Text.OutlineText.RaisedText.Sunken 示例 import QtQuickRow{spacing: 10padding: 10Text {font.pointSize: 40text: "Normal"}Text {font…...

人工智能未来展望

深入剖析人工智能&#xff1a;现状、挑战与未来展望 在当今这个日新月异的科技时代&#xff0c;人工智能&#xff08;AI&#xff09;无疑是最为耀眼的明星之一。它以其独特的魅力&#xff0c;正引领着一场前所未有的技术革命&#xff0c;深刻地改变着人类社会的方方面面。本文…...

Pymol开源版安装 新版 3.0 / 3.1 Windows安装Pymol开源版

PyMOL 简介 PyMOL 是一个开源的分子可视化系统&#xff0c;被广泛应用于结构生物学中。它允许用户可视化分子结构&#xff0c;并创建高质量的蛋白质、核酸和其他大分子的3D图像。多年来&#xff0c;PyMOL不断发展&#xff0c;新版本引入了更多的功能和改进。 PyMOL 3.0 / 3.1…...

记录一次环境的安装

目录 新添加的代码 代码解释 为啥ubuntu用debian软件源 为啥修改sources.list.d S权限意思 php缺少和数据库连接的模块 使用root登陆数据库1698错误 字段解释 auth_socket解释 使用root登陆数据库方法 详细解释 首先在安装的时候&#xff0c;有一个dockerfile文件&a…...

浏览器用户文件夹详解 - WebData(八)

1.WebData简介 1.1 什么是WebData文件&#xff1f; WebData文件是Chromium浏览器中用于存储用户表单数据、自动填充信息和支付信息的一个重要文件。每当用户在浏览器中填写表单或保存支付信息时&#xff0c;这些数据都会被记录在WebData文件中。通过这些记录&#xff0c;浏览…...

ijkplayer 自定义协议播放加密内容 Android

想对播放的音视频进行加密&#xff0c;防止资源被盗用&#xff0c;该怎么办呢&#xff1f; 这篇文章从自定义协议的角度来提供一中实现思路。在 ijkplayer 的基础上&#xff0c;通过实现自定义协议对文件进行解密。边解边播&#xff0c;以此为基础&#xff0c;还可以实现在线资…...

【kill】Centos/Linux 如何杀死那该死的进程?

简介 系统版本&#xff1a;Centos7.6 kill 命令发送指定的信号到指定的进程或者进程组。如果该信号没有指定&#xff0c;则发送SIGTERM信号&#xff08;15&#xff09;&#xff0c;即终止信号。如果SIGTERM信号&#xff08;15&#xff09;无法终止&#xff0c;可使用SIGKILL&am…...

Cadence23学习笔记(十七)

吴老师的网站里面有很多cadence的开源项目&#xff0c;可以用来学习&#xff1a; 全志 H3 SOC 官方参考设计 DD3 16bitX2 原理图及PCB – 吴川斌的博客 (mr-wu.cn) cadence设置显示实时的走线长度&#xff1a; 在allegro进行布线时可以实时显示当先布线的实际长度有助于pcb的…...

WinFrom调用webapi接口方法及其应用实例

1.WinFrom调用webapi接口方法 最近项目要在winfrom项目中调用webAPI&#xff0c;故在网上查找资料&#xff0c;找到了一个WinFrom调用webapi接口的通用方法&#xff0c;关键代码&#xff1a; #region WinFrom调用webapi接口通用方法private async Task<string> InvokeWe…...

智能巡检企业级域名 SSL 证书

一、概述 SSL 证书是一种数字证书&#xff0c;用于在用户和服务器之间建立加密链接&#xff0c;确保数据传输的安全性&#xff0c;防止数据在传输过程中被截获或篡改。SSL 证书不仅保护了数据传输过程中的隐私和完整性&#xff0c;还可以帮助验证网站的身份&#xff0c;防止钓…...

海思35XX系列(三)sensor(传感器)

刚开始接触这个概念的时候感觉比较模糊&#xff0c;简单记录一下吧 Sensor&#xff08;传感器&#xff09;是一种可以感知外部环境并将感知到的信息转化为可用的电信号或其他形式的工具。传感器广泛应用于电子设备、工业自动化、汽车、医疗器械等领域&#xff0c;用于测量、监…...

dfs(续做)

1.混境之地5 #include<bits/stdc.h> using namespace std; typedef long long ll; const int dx[4] {0,1,0,-1}; const int dy[4] {1,0,-1,0}; int n,m,k,a,b,c,d,sign0; int h[1010][1010],visit[1010][1010]; void dfs(int x,int y,bool used) {if(xc&&yd){si…...

OpenStack;异构算力网络架构;算力服务与交易技术;服务编排与调度技术

目录 OpenStack 一、OpenStack概述 二、OpenStack的主要组件及功能 三、OpenStack的架构 四、OpenStack的应用场景 异构算力网络架构 算力服务与交易技术 服务编排与调度技术 OpenStack 是一个开源的云计算管理平台项目,由NASA(美国国家航空航天局)和Rackspace合作…...

PLC-Recorder对于数据采集时间戳偏差的修正功能

目录 一、修正原理 二、使用步骤 1、初始状态&#xff0c;计算修正系数 2、启动和使用 3、修正系数的手动修改 三、修正前后的效果对比 1、修正前的时间偏差曲线 2、修正后的效果曲线 四、注意事项 1、控制器可能的时钟波动 2、平移参数评估 3、参数保存 五、关于…...

自定义监控

代码说明&#xff1a; 导入必要的库 import time import psutil import GPUtil from prometheus_client import start_http_server, Summary, Counter, Gaugepsutil&#xff1a;用于获取系统的CPU、内存、磁盘和网络信息。GPUtil&#xff1a;用于获取GPU信息。prometheus_cli…...

关于使用php的mpdf插件遇到的一些问题

一.插件版本 "mpdf/mpdf": "^8.0", 二.报错&#xff1a;Undefined index: list_style_type 这个是插件无法识别 li 标签导致&#xff0c;生成pdf是加入下面代码 <style> li { list-style-type: none; list-style-image: none; list-style-positi…...

电脑截图,颜色变淡的问题解决

解决 Windows 11 在 HDR 模式下截图 Edge 浏览器界面时画面过曝的问题-腾讯云开发者社区-腾讯云 (tencent.com) 主要是浏览器用错了东西&#xff0c;调一下就好&#xff0c;详情看链接 联想拯救者y9000p为例&#xff0c;选择sRGB&#xff0c;就好啦&#xff0c;拜拜喽&#x…...

uniApp跳转外链

创建一个新的页面&#xff0c;在该页面中使用web-view组件加载外部URL&#xff1a;pages/web-view/web-view <template><view><uni-list><uni-list-itemtitle"打开外部链接"click"openExternalLink"></uni-list-item></…...

科技云报道:大模型引领技术浪潮,AI安全治理面临“大考”

科技云报道原创。 从文生文到文生图&#xff0c;再到文生视频&#xff0c;近年来&#xff0c;以ChatGPT、Sora等为代表的大模型引领了全球人工智能技术与产业的新一轮浪潮。2024年更是被业内称为大模型应用爆发元年。 年初&#xff0c;Sora横空出世验证了Scalling Law在视频生…...

SpringSecurity+Mysql数据库实现用户安全登录认证

Spring Security 是一个提供身份认证、授权和防范常见攻击的安全权限框架。无论是对命令式&#xff0c;还是响应式web应用程序都完美支持&#xff0c;现在主要用作保护基于 Spring 框架的应用程序的事实标准。相对于shiro来说&#xff0c;SpringSecurity功能更加复杂而且更加强…...

虚拟网卡添加ip

1.虚拟机网卡添加 1.进入虚拟机设置添加网卡即网络适配器 2.配置文件修改 1.查看网卡是否添加成功 ip ad ifconfig 其中ens161就是我们新添加的设备同时这个ens161也是我们硬件名字 2.进入系统配置文件 cd /etc/sysconfig/network-scripts/#配置文件目录[rootlocalhost ne…...

Unity向量线性插值Lerp

inline glm::vec3 Lerp(glm::vec3 start, glm::vec3 end, float t){t glm::clamp(t, 0.0f, 1.0f);return (start*(1-t)end*t); }...

怎么查在哪个网站做的备案/seo优化总结

1.线性布局&#xff08;LinearLayout&#xff09;最常用 <1>使用线性布局&#xff0c;首先在xml文件中修改布局为LinearLayout 修改完成后&#xff0c;可在Component Tree中看见如下内容&#xff1a; <2>点击LinearLayout,可在右侧的Attributes(属性)中进一步设置是…...

长沙医疗网站建设/搜索引擎优化的含义

怎样才能学到东西&#xff1f;首先&#xff0c;你必须理解书中内容&#xff0c;然后确保不会忘记。这并不代表填鸭式的死记&#xff0c;根据认知科学、神经生物学和教育心理学的最新研究&#xff0c;学习不仅仅是把书上的文字全部背下来。我们知道如何激活你的大脑&#xff0c;…...

藁城网站建设哪家好/会计培训班哪个机构比较好

/*请为原作者打个标记。出自&#xff1a;珍惜少年时*/通过该关卡的学习我掌握到了1.如何灵活的运用mysql里的MID、ASCII、length、等函数2.布尔型盲注的认识3.哦&#xff0c;对了还有。程序是从0开始的&#xff0c;limit的时候要从0开始。{0,1}该文就是布尔型盲注盲注又分为了以…...

汕头建设网站/白度

Creating Menus android 菜单包括三种.Options Menu , Context Menu 和Submenu. 本文完整代码 CSDN下载频道 :http://download.csdn.net/source/2900952 , 1.Options Menu(选项菜单) 方法1 需要重写public boolean onCreateOptionsMenu(Menu menu)和 public boolean onOp…...

wordpress 摘要长度/网页制作教程视频

checkboxcheckbox1checkbox2checkbox3...

深圳市保障性住房官网/企业网站搜索优化网络推广

什么是Use Case 用例描述文档的书写是系统分析人员对用户需求的深刻理解的体现。是后期时序图和实际开发的重要依据。也可以对作为项目估算的依据&#xff0c;以及根据UC复杂度和开发周期来衡量开发人员的工作效率。因此UC的书写规范及其重要&#xff0c;就工作用的一些经验&am…...