Python在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
#python:字符判断 发布于:2023-09-26 22:11 背包问题算法 发布于:2023-09-26 16:49 背包问题(二进制) 发布于:2023-09-26 16:45 蛮力字符串匹配算法 发布于:2023-09-26 16:26 蛮力字符匹配法 发布于:2023-09-26 16:15 百鸡百钱问题 发布于:2023-09-24 19:14 拓展题,利用蛮力法解决百鸡百钱问题 百钱百鸡问题是一道数学题,出自《张邱建算经》,问题描述如下:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏一,值钱一;百钱买百鸡,则翁、母、雏各几何? 发布于:2023-09-24 18:25 百钱百鸡问题是一道数学题,出自《张邱建算经》,问题描述如下:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏一,值钱一;百钱买百鸡,则翁、母、雏各几何? 发布于:2023-09-24 13:37 蛮力法解决百鸡百钱问题 发布于:2023-09-24 12:09 选择排序! 发布于:2023-09-24 12:03 冒泡排序! 发布于:2023-09-24 12:02 百鸡百钱问题 发布于:2023-09-23 23:36 这是选择排序算法 发布于:2023-09-23 23:30 这是冒泡排序的算法 发布于:2023-09-23 23:26 选择排序算法 发布于:2023-09-23 22:29 python的排序算法 发布于:2023-09-23 15:10 解决百鸡百钱问题,求得满足条件的鸡的数量的组合 发布于:2023-09-22 09:15 选择排序代码实现 发布于:2023-09-21 20:32 百钱百鸡问题 发布于:2023-09-21 20:14 冒泡排序算法 发布于:2023-09-19 16:37 a = 222 b = 3.14 c = "Python知识分享网" print("a=", a) print(b) print(c) a = 222 - 1 print("a=", a) 发布于:2023-09-19 14:56 统计文章代码 发布于:2023-09-19 09:43 新手不会做 发布于:2023-09-17 21:48 石头剪刀布(只支持中文输入) 发布于:2023-09-16 14:48 华氏度转摄氏度 发布于:2023-09-16 14:30 判断整数的奇偶性 发布于:2023-09-16 14:28 计算器(暂不支持小数) 发布于:2023-09-16 05:18 字符串切片 发布于:2023-09-14 20:26 for的continue瞎写开始 发布于:2023-09-13 21:32 给定两个不等于0的整数M和N,求M和N的最大公约数 发布于:2023-09-12 20:32 字典的创建 发布于:2023-09-12 20:28 2个数的最大公约数 发布于:2023-09-12 14:23 有限整数序列找到最大值 发布于:2023-09-12 14:07 求序列中的最大值 发布于:2023-09-12 13:18 给定两个不等于0的整数M和N,求M和N的最大公约数 发布于:2023-09-11 21:31 给定两个不等于0的整数M和N,求M和N的最大公约数 发布于:2023-09-11 20:54 在有限整数序列中找到最大值 发布于:2023-09-11 20:52 在有限整数序列中找到最大值的算法 发布于:2023-09-11 19:44 在有限整数序列中找到最大值的算法 发布于:2023-09-11 13:37 给定两个不等于0的整数M和N,求M和N的最大公约数 发布于:2023-09-11 18:50 测试match case的用法 发布于:2023-09-11 11:26 求有限整数序列中最大值的算法 发布于:2023-09-10 20:27 数字转字符串 发布于:2023-09-10 16:48 在有限整数序列中找到最大值的算法 发布于:2023-09-09 13:39 代码简介必需要大于5个字才能保存 发布于:2023-09-09 11:24 两数的最大公约数 发布于:2023-09-08 20:37 最大公约数 发布于:2023-09-08 20:27 给定两个不等于0的整数M和N,求M和N的最大公约数 发布于:2023-09-07 23:47 在有限整数序列中找到最大值的算法 发布于:2023-09-07 23:15 第一章课后作业 发布于:2023-09-07 21:02 [更多]
显示目录

字符串



Python 字符串

除了数字,Python也能操作字符串。字符串有几种表达方式,可以使用单引号或双引号括起来:

>>> 'spam eggs'
'spam eggs'
>>> 'doesn\'t'
"doesn't"
>>> "doesn't"
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'

Python中使用反斜杠转义引号和其它特殊字符来准确地表示。

如果字符串包含有单引号但不含双引号,则字符串会用双引号括起来,否则用单引号括起来。对于这样的输入字符串,print() 函数会产生更易读的输出。

跨行的字面字符串可用以下几种方法表示。使用续行符,即在每行最后一个字符后使用反斜线来说明下一行是上一行逻辑上的延续:

以下使用 \n 来添加新行:

>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
>>> print('"Isn\'t," she said.')
"Isn't," she said.
>>> s = 'First line.\nSecond line.'  # \n 意味着新行
>>> s  # 不使用 print(), \n 包含在输出中
'First line.\nSecond line.'
>>> print(s)  # 使用 print(), \n 输出一个新行
First line.
Second line.

以下使用 反斜线(\) 来续行:

hello = "This is a rather long string containing\n\
several lines of text just as you would do in C.\n\
    Note that whitespace at the beginning of the line is\
 significant."

print(hello)

注意,其中的换行符仍然要使用 \n 表示——反斜杠后的换行符被丢弃了。以上例子将如下输出:

This is a rather long string containing
several lines of text just as you would do in C.
    Note that whitespace at the beginning of the line is significant.

或者,字符串可以被 """ (三个双引号)或者 ''' (三个单引号)括起来。使用三引号时,换行符不需要转义,它们会包含在字符串中。以下的例子使用了一个转义符,避免在最开始产生一个不需要的空行。

print("""\
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
""")

其输出如下:

Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to

如果我们使用"原始"字符串,那么 \n 不会被转换成换行,行末的的反斜杠,以及源码中的换行符,都将作为数据包含在字符串内。例如:

hello = r"This is a rather long string containing\n\
several lines of text much as you would do in C."

print(hello)

将会输出:

This is a rather long string containing\n\
several lines of text much as you would do in C.

字符串可以使用 + 运算符串连接在一起,或者用 * 运算符重复:

>>> word = 'Help' + 'A'
>>> word
'HelpA'
>>> '<' + word*5 + '>'
''

两个紧邻的字面字符串将自动被串连;上例的第一行也可以写成 word = 'Help' 'A' ;这样的操作只在两个字面值间有效,不能随意用于字符串表达式中:

>>> 'str' 'ing'                
#  <- string="">>> 'str'.strip() + 'ing'  
#  <- string="">>> 'str'.strip() 'ing'    
#  <-  这样操作错误   File "", line 1, in ?
    'str'.strip() 'ing'
                      ^
SyntaxError: invalid syntax

字符串可以被索引;就像 C 语言一样,字符串的第一个字符的索引为 0。没有单独的字符类型;一个字符就是长度为一的字符串。就像Icon编程语言一样,子字符串可以使用分切符来指定:用冒号分隔的两个索引。

>>> word[4]
'A'
>>> word[0:2]
'Hl'
>>> word[2:4]
'ep'

默认的分切索引很有用:默认的第一个索引为零,第二个索引默认为字符串可以被分切的长度。

>>> word[:2]    # 前两个字符
'He'
>>> word[2:]    # 除了前两个字符之外,其后的所有字符
'lpA'

不同于C字符串的是,Python字符串不能被改变。向一个索引位置赋值会导致错误:

>>> word[0] = 'x'
Traceback (most recent call last):
  File "", line 1, in ?
TypeError: 'str' object does not support item assignment
>>> word[:1] = 'Splat'
Traceback (most recent call last):
  File "", line 1, in ?
TypeError: 'str' object does not support slice assignment

然而,用组合内容的方法来创建新的字符串是简单高效的:

>>> 'x' + word[1:]
'xelpA'
>>> 'Splat' + word[4]
'SplatA'
在分切操作字符串时,有一个很有用的规律: s[:i] + s[i:] 等于 s.

>>> word[:2] + word[2:]
'HelpA'
>>> word[:3] + word[3:]
'HelpA'

对于有偏差的分切索引的处理方式也很优雅:一个过大的索引将被字符串的大小取代,上限值小于下限值将返回一个空字符串。

>>> word[1:100]
'elpA'
>>> word[10:]

>>> word[2:1]

在索引中可以使用负数,这将会从右往左计数。例如:

>>> word[-1]     # 最后一个字符
'A'
>>> word[-2]     # 倒数第二个字符
'p'
>>> word[-2:]    # 最后两个字符
'pA'
>>> word[:-2]    # 除了最后两个字符之外,其前面的所有字符
'Hel'
但要注意, -0 和 0 完全一样,所以 -0 不会从右开始计数!

>>> word[-0]     # (既然 -0 等于 0)
'H'

超出范围的负数索引会被截去多余部分,但不要尝试在一个单元素索引(非分切索引)里使用:

>>> word[-100:]
'HelpA'
>>> word[-10]    # 错误
Traceback (most recent call last):
  File "", line 1, in ?
IndexError: string index out of range

有一个方法可以让您记住分切索引的工作方式,想像索引是指向字符之间,第一个字符左边的数字是 0。接着,有n个字符的字符串最后一个字符的右边是索引n,例如:

 +---+---+---+---+---+
 | H | e | l | p | A |
 +---+---+---+---+---+
 0   1   2   3   4   5
-5  -4  -3  -2  -1

第一行的数字 0...5 给出了字符串中索引的位置;第二行给出了相应的负数索引。分切部分从 i 到 j 分别由在边缘被标记为 i 和 j 的全部字符组成。

对于非负数分切部分,如果索引都在有效范围内,分切部分的长度就是索引的差值。例如, word[1:3] 的长度是2。

内置的函数 len() 用于返回一个字符串的长度:

>>> s = 'supercalifragilisticexpialidocious'
>>> len(s)
34
由JSRUN为你提供的Python在线运行、在线编译工具
        JSRUN提供的Python 在线运行,Python 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。