Python3字符串

 

字符串是Python中最常用的数据类型,可以使用单引号或双引号来创建字符串

创建字符串很简单,为变量分配一个值即可。

val1 = ‘hello world’
var2 = “Runoob”

Python访问字符串的值

Python不支持单字符类型,单字符在Python中也是作为 一个字符串使用

Python访问子字符串,可以使用方括号来截取字符串,如下:

/***
string.py
***/
var1 = 'hello world'
var2 = "runoob"print ("var1[0]: ",var1[0]);
print ("var2[1:5]: ",var2[1:5])

运行结果:

robot@ubuntu:~/wangqinghe/python/20190822$ python3.5 string.py

var1[0]:  h

var2[1:5]:  unoo

 

Python字符串更新

可以截取字符串的一部分和其他字段拼接,如下:

 

 

 

Python转义字符

在需要在字符中使用特殊字符,python用反斜杠转义字符

转义字符

描述

\(在行尾)

续行符

\\

反斜杠符

\’

单引号

\”

双引号

\a

响铃

\b

退格(space)

\000

\n

换行

\v

纵向制符表

\t

横向制符表

\r

回车

\f

换页

\oyy

八进制,yy表示字符,

\xyy

十六进制,yy表示字符

\other

其他的字符以普通格式输出

 

Python字符串运算符

操作符

描述

+

字符串连接

*

重复输出字符串

[]

通过索引获取字符串中字符

[:]

截取字符串一部分,遵循左闭右开原则

in

成员运算符—如果字符中包含给定的字符返回true

not in

成员运算符—如果字符中不包含给定的字符返回true

r/R

原始字符串—原始字符串:所有的字符串都是直接按照字面意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母r(R)以外,与普通字符串有着几乎完全相同的语法

%

格式化字符串

/***
arch.py
***/
a = "hello"
b = "python"print("a + b is : ", a+b)
print("a * 2 is : ", a*2)
print("a[1] is : ",a[1])
print("a[1:4] is : ",a[1:4])if("h" in a):print("h in a is true")
else :print("h in a is false")if("m" not in a):print("m not in a is true")
else:    print("m not in ta is false")print (r'\n')
print (R'\n')

运行结果:

robot@ubuntu:~/wangqinghe/python/20190822$ python3.5 archi.py

a + b is :  hellopython

a * 2 is :  hellohello

a[1] is :  e

a[1:4] is :  ell

h in a is true

m not in a is true

\n

\n

 

Pyt字符串格式化

Python支持格式化字符串输出,尽管这样可能会用到非常复杂的表达式,但是最基本的用法就是将一个值插入到一个有字符串格式符%s的字符串中

在Python中,字符串格式化使用与C中的sprintf函数一样的语法

print (“我叫 %s 今年 %d 岁!“ (‘小明’,10))

 

Python字符串格式化符号

符号

描述

%c

格式化字符及其ASCII码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同上

%g

%f和%e的简写

%G

%f和%E的简写

%p

用十六进制数格式化变量的地址

 

格式化操作辅助指令

符号

功能

*

定义宽度或者小数点精度

-

用作左对齐

+

在正数前面显示加号

<sp>

在正数前面显示空格

#

在八进制数前显示零,在十六进制前面显示’0x’或‘0X’

0

显示的数字前面填充’0’而不是默认的空格

%

‘%%’输出的一个单一的‘%‘

(var)

映射变量(字典参数)

m.n

m是显示的最小的总宽度,n是小数点后的位数

 

Python三引号

Python三引号运行一个字符串跨多行,字符串中可以包含换行符、制表符、以及其他特殊字符。

 

Python的字符串内建函数

Python的字符串常用内建函数如下:

方法

描述

capitalize()

将字符串第一个字符转换成大写

center(width,fillchar)

返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格

count(str,beg = 0,end = len(string))

返回str在string里面出现的次数,如果beg或end指定则返回指定返回内str出现的次数

bytes.decode(encoding=”utf-8”,errors=”strict”)

bytes对象的decode()方法来解码给定的ebytes对象,这个bytes对象可以由str.encode()来编码返回

encode(encoding=’UTF-8’,errors=’strict’)

以encoding指定的编码格式编码字符串,如果出错,则默认报一个ValueError的异常,除非errors指定的是’ignore’或者’replace’

endswith(suffix,beg=0,end=len(string))

检查字符串是否事宜obj结束,如果beg或end指定则检查指定的范围内是否以obj结束,如果是,返回true,反之返回false

expandtabs(tabsize=8)

把字符串string中的tab符号转换成空格, tab符号默认的空格数是8

find(str,beg=0,end=len(string))

检查str是否包含在字符串中,如果是指范围的beg和end,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

index(str,beg=0,end=len(string))

很find返回一样,只不过如果str不在字符串中会报一个异常

isalnum()

如果字符串至少有一个字符,并且所有字符都是字母或数字返回true,否则返回false

isalpha()

如果字符串至少有一个字符,并且所有字符都是字母返回true,否则返回false

isdigit()

如果字符串只包含数字返回true否则返回false

islower()

如果字符串中包含至少一个区分大小写的字符,并且所有这些字符都是小写,则返回true,否则返回false

isnumeric()

如果字符串只包含数字字符返回true否则返回false

isspace()

如果字符串只包含空白返回true否则返回false

istitle()

如果字符串是标题化的则返回true,否则返回false

isupper()

如果字符串中包含至少一个区分大小写的而字符,并且这些字符都是大写,则返回true,否则返回false

join(seq)

以指定字符为分隔符,将seq中所有的元素合并为一个新的字符串

len(string)

返回字符串长度

ljust(width[,fillchar])

返回一个原始字符串左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格

lower()

转换字符串中的所有大写字符串为小写

lstrip()

截掉字符串左边的空格或指定字符

maketrans()

创建字符映射的转换表时,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标

min(str)

返回字符串str中最小的字母

replace(old,new[,max])

将字符串中的str1替换成str2,如果max指定,则替换次数不超过maxn

rfind(str,beg=0,end=lens(string))

类似find函数,从右开始找起

rindex(str,beg=0,end=len(string))

类似index函数,从右才是找起

rjust(width,[,fillchar])

返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度width的新字符串

rstrip()

删除字符串末尾空格

split(str=””,num=string.count(str))

num=string.count(str)以str为分隔符截取字符串,如果num有指定值,则仅截取num+1个子字符串

splitlines([keepends ])

按照行(‘\r’,’\r\n’,’\n’)分隔,返回一个包含各行作为元素的列表。如果参数keepends为false,不包含换行符,如果为true则保留换行符

startwith(substr,beg=0,end=len(string))

检查字符串是否是以指定子字符串substr开头,是则返回true,否则返回false。如果beg和end指定值,则在指定范围内检查

strip([chars])

在字符串上执行istrip()和rstrip()

swapcase()

将字符串中大写转换成小写,小写转换成大写

title()

返回“标题化“的字符串,也就是说所有的单词都是以大写开始,所有字母均为小写

tanslate(table,deltechars=””)

根据str给出的表,转换成string的字符,要过滤掉的字符放到deletechars参数中

upper()

转换字符串中的小写字母为大写

zfill(width)

返回长度为width的字符串。原字符串右对齐,前面填充0

isdecimal()

检查字符串是否包含十进制字符,如果是返回true,否则返回false

 

 

[::2]表示从头到尾,步长为2,第一个冒号的两侧数字是截取字符串长度的范围,第二个冒号后面是指截取的步长

也可以使用负数从字符串右边尾部向左边反向索引,最右侧索引值为-1

字符串分隔还有partition()的方式

partition(seq)  ---- > (head,seq,tail)

从左向右遇到分隔符把字符串分割成两部分,返回头、分割符、尾三部分的三元组。如果没有找到分割符,就返回头、尾两个空元素的三元组。

 

 

 

python字符串格式化符号%f可指定小数点后的精度,同C的使用

 

g是自动选择输出格式,在六位数的情况下就会以科学计数法方式输出,

 

python输出二进制、八进制、十六进制的方法

 

 

 

counter升级使用:

IP掩码换算

/***
mask.py
***/
b = '1'
bs_len = len(b)
while bs_len < 9:b_b = b.ljust(8,'0')d = int(b_b,2)print("binary %s is equal with %s" %(b_b,d))b = b + "1"bs_len = len(b)运行结果:
robot@ubuntu:~/wangqinghe/python/20190822$ vim mask.py
robot@ubuntu:~/wangqinghe/python/20190822$ python3.5 mask.py 
binary 10000000 is equal with 128
binary 11000000 is equal with 192
binary 11100000 is equal with 224
binary 11110000 is equal with 240
binary 11111000 is equal with 248
binary 11111100 is equal with 252
binary 11111110 is equal with 254
binary 11111111 is equal with 255

 

转载于:https://www.cnblogs.com/wanghao-boke/p/11396050.html

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

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

相关文章

服务器客户端编程

server 下面通过最简单的客户端/服务器程序的实例来学习socket API。 server.c的作用是从客户端读字符&#xff0c;然后将每个字符转换为大写并回送给客户端。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #incl…

Python3元组

Python的元组与列表相似&#xff0c;不同之处在于元组的元素不能修改 元组使用小括号&#xff0c;列表使用方括号 元组创建很简单&#xff0c;只需要在括号中添加元素&#xff0c;并使用逗号隔开即可。 创建空元组 tup1 (); tup2 (1,) 元组只包含一个元素时&#xff0c;需要在…

Python3字典

字典是另一种可变容器模型&#xff0c;可存储任意类型的对象。 字典的每个键值(key>value)对用冒号分隔&#xff0c;每个对之间用逗号分隔&#xff0c;整个字典包括在花括号里&#xff0c;格式如下 d {key1 : value,key2 : value2} 键必须是唯一&#xff0c;但值则不必。 值…

多进程服务器

注意&#xff1a;包含了“wrap.c” 和“wrap.h”文件在上篇博客中 /*** server.c ***/ #include<stdio.h> #include<string.h> #include<netinet/in.h> #include<arpa/inet.h> #include<signal.h> #include<sys/wait.h> #include<ctype…

Python3集合

集合&#xff08;set&#xff09;是一个无序的不重复元素序列。 可以使用大括号{ } 或set&#xff08;&#xff09;函数来创建集合&#xff0c;注意&#xff1a;创建一个空集合必须用set(),{ }是用来创建一个空字典的。 创建格式&#xff1a; param {value01,value02,…} set(…

Python3循环

Python中while语句的一般形式&#xff1a; while 判断条件: 语句 同样需要注意冒号和缩进&#xff0c;另外在Python中没有do…while循环 下面的实例计算1到100总和 ##calc.py n 100sum 0 counter 1 while counter < n:sum sum countercounter 1print("total from…

Python3迭代器和生成器

迭代器 迭代是Python最强大的功能之一&#xff0c;是访问元素集合的一种方法。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问&#xff0c;直到所有的元素被访问完结束&#xff0c;迭代器只能向前不会后退。 迭代器有两个基本方法&#xff0c;…

Python3函数

函数是组织好的&#xff0c;可重复使用的&#xff0c;用来实现单一&#xff0c;或相关功能的代码段。 函数能提高应用的模块性&#xff0c;和代码的重复使用率。 定义一个函数 可以定义一个由自己想要功能的函数&#xff0c;以下是简单规则&#xff1a; l 函数代码块是以def关…

epoll函数

epoll是Linux下多路复用IO接口select/poll的增强版本&#xff0c;它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率&#xff0c;因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合&#xff0…

Python3数据结构

列表&#xff1a; Python列表是可变的&#xff0c;这是它区别于字符串数组和元组的最重要的特点。列表可以修改&#xff0c;而字符串和元组不能。 以下是Python中列表的描述方法&#xff1a; 方法 描述 list.append(x) 将元素添加到列表结尾 list.extend(L) 通过添加指定列…

Python3输入输出

Python两种输出值的方式&#xff0c;表达式语句和print()函数。 第三种方式是使用文件对象的write()方法&#xff0c;标准输出文件可以用sys.stdout的引用。 如果你希望输出的形式更加多样&#xff0c;可以使用str.fomat()函数来格式化输出值。 如果你希望将输出的值转化成字符…

Python3正则表达式

正则表达式是一个特殊的字符序列&#xff0c;他能帮助你方便的检查一个字符串是否与某种模式匹配。re.match函数 re.match尝试从字符串的起始位置匹配一个模式&#xff0c;如果不是起始位置匹配成功的话&#xff0c;match()就返回一个none。 函数语法&#xff1a; re.match(pat…

signal()函数

函数原型 void (*signal(int sig,void(*func)(int)))(int); 指定使用sig指定的信号编号处理信号的方法。参数func指定程序可以处理信号的三种方式之一&#xff1a; l 默认处理(SIG_DFL)&#xff1a; 信号由该特定信号的默认动作处理l 忽略信号&#xff08;SIG_IGN&a…

【C++学习之路】第一章——C++核心方法总论

1 C核心方法总论 1.1 核心思想 通过实际项目来学习编程&#xff0c;更高效掌握编程规则&#xff0c;以及明白各种语法规则的实际应用。 实验思想&#xff1a;任何C的参考资料都不可能覆盖你遇到的所有问题&#xff0c;这个时候&#xff0c;最好的办法就是&#xff0c;编辑代…

【学会如何学习系列】从婴儿到大学——学习的本质从未改变过

从婴儿到大学——学习的本质从未改变过 从我们出生一直到现在&#xff0c;其实&#xff0c;学习的本质从来都没有改变过&#xff0c;并且&#xff0c;婴儿时期的我们&#xff0c;是学习能力最强的时候&#xff0c;随着我们不断长大&#xff0c;外界的诱惑越来越多&#xff0c;…

【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模

2 Verilog HDL的设计方法学——层次建模 重要的思想&#xff1a; 在语文教学中&#xff0c;应该先掌握核心方法论&#xff0c;再用正确的方法论去做题目&#xff0c;这样能够逐渐加深对于方法论的理解&#xff0c;做题的速度和准确率也会越来越高。在Verilog HDL中&#xff0c…

【Verilog HDL】第四章 模块的端口连接规则——污水处理模型

先放上连接规则的简图&#xff0c;再详细解释 1. 构建模型——污水处理之流水模型 我们先将上述结构构件一个简单模型&#xff0c;以帮助我们理解。 污水&#xff1a;输入数据净水&#xff1a;输出数据双向数据暂不讨论&#xff0c;取输入和输出的交集即可污水处理厂&…

【Verilog HDL】从逻辑电路图到门级建模——人工翻译的方法论

从左到右&#xff0c;从上到下 先搞定缓冲/非门&#xff0c;再写与/或门 1. 实例解读 先以四选一数据选择器进行说明 对于数字逻辑的部分不再说明&#xff0c;直接进行逻辑电路图到Verilog门级建模的人工翻译过程的描述。 1.1 端口和线网分析 确定输入/输出端口 输入端口 …

【Verilog HDL】语句的并发执行

1. 实践得到的启发 先从一个简单的现象得出结论&#xff0c;Verilog语句是并发执行的&#xff01; 同时&#xff0c;这也是**$monitor系统任务为全局有效**的一个重要支持因素&#xff0c;如果没有并发&#xff0c;它是完不成这项功能的实现的。 众所周知&#xff0c;高级语…

【数字逻辑】第四章 组合逻辑电路:端口设计 端口拓展的方法

1. 端口设计的方法 1.1 数据选择器 以四选一数据选择器为例&#xff0c;需要的不同接口类型为 输入端口 数据输入端口地址输入端口使能端&#xff08;控制与拓展&#xff09; 输出端口 数据输出端口 2. 端口拓展的方法——层次建模思想 2.0 两个拓展方向 2.0.1 “数组型…