当前位置: 首页 > 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…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...