Python 字符串,并与 PHP 对比

阅读数: 534 2018年10月08日

1、访问字符串中的值

【Python】支持 list 方式访问:

a = 'abcdefg'

print(a[3]) //d

print(a[:]) //abcdefg

print(a[:2]) //ab

print(a[1:]) //bcdefg


【PHP】只支持数组方式访问:

$a = 'abcdefg';

echo $a[0]; // a


2、字符串更新

【Python】不支持 a[0] = 'A'

【php】支持 $a[0] = 'A';


3、字符串运算符

【Python】

操作符描述实例
+字符串连接

>>>a + b'HelloPython'

*重复输出字符串

>>>a * 2'HelloHello'

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

>>>a[1]'e'

[ : ]截取字符串中的一部分

>>>a[1:4]'ell'

in成员运算符 - 如果字符串中包含给定的字符返回 True

>>>"H" in aTrue

not in成员运算符 - 如果字符串中不包含给定的字符返回 True

>>>"M" not in aTrue

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

>>>print r'\n'\n>>> print R'\n'\n

%格式字符串

【php】使用 . 连接字符串


4、字符串格式化

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

print('my name is %s and weight is %d kg' % ('peter', 75))

python字符串格式化符号:

    符   号描述
      %c 格式化字符及其ASCII码
      %s 格式化字符串
      %d 格式化整数
      %u 格式化无符号整型
      %o 格式化无符号八进制数
      %x 格式化无符号十六进制数
      %X 格式化无符号十六进制数(大写)
      %f 格式化浮点数字,可指定小数点后的精度
      %e 用科学计数法格式化浮点数
      %E 作用同%e,用科学计数法格式化浮点数
      %g %f和%e的简写
      %G %f 和 %E 的简写
      %p 用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )

在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

【php】使用 sprintf() 来格式化:

echo sprintf('my name is %s and weight is %d kg。', 'peter', 75);


5、多行复杂字符串

【Python】使用“三引号”(3个单引号或3个双引号开头,并且同样的引号结尾)

a = '''hi

I am peter

can I help you

'''

优点:再也不用担心内容单引号或双引号转义了,哦也!


【php】

1) 使用在字符串里面换行就可以了。

$a = 'hi

I am peter

can I help you

';

2)使用 php DOC 

$a = <<<DOC

hi 

I am peter

can I help you?

DOC;


6、Unicode 字符串

【Python】Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:

>>> u'Hello World !'


【php】不能定义 Unicode 字符串,但可以把其他编码的字符串转码成 Unicode 编码:

base_convert(bin2hex(iconv('UTF-8',"UCS-4",$m)),16,10);


参考资料
http://www.runoob.com/python/python-strings.html
phpriji.cn | 网站地图 | | 沪ICP备17015433号-1