搜尋
首頁後端開發Python教學分享Python中常用操作字串的函數與方法總結

這篇文章主要分享Python中常用操作字串函數與方法總結結,包括字串的格式化輸出與拼接等基礎知識,需要的朋友可以參考下

例如這樣一個字串Python,它就是幾個字元:P,y,t,h,o,n,排列起來。這種排列是非常嚴格的,不僅僅是字符本身,而且還有順序,換言之,如果某個字符換了,就編程一個新字符串了;如果這些字符順序發生變化了,也成為了一個新字符串。

在 Python 中,把像字串這樣的物件類型(後面還會冒出來類似的其它有這種特點的物件類型,例如列表),統稱為序列。顧名思義,序列就是「有序排列」。

例如水泊梁山的 108 個好漢(裡面分明也有女的,難道女漢子是從這裡來的嗎?),就是一個「有序排列」的序列。從老大宋江一直排到第 108 位金毛犬段景住。在這個序列中,每個人都有編號,編號和每個人一一對應。 1 號是宋江,2 號是盧俊義。反過來,透過每個人的姓名,也能找出他對應的編號。武松是多少號? 14 號。李逵呢? 22 號。

在Python 中,給這些編號取了一個文雅的名字,叫做索引(別的程式語言也這麼稱呼,不是Python 獨有的。) 。

索引和切片
前面用梁山好漢的為例說明了索引。再看Python 中的例子:


>>> lang = "study Python"
>>> lang[0]
's'
>>> lang[1]
't'


#有一個字串,透過賦值語句賦給了變數 lang。如果要得到這個字串的第一個單字 s,可以用 lang[0]。當然,如果你不願意透過賦值語句,讓變數lang 來指向那個字串,也可以這樣做:


#
>>> "study Python"[0]
's'


##效果是一樣的。因為 lang 是標籤,就指向了 "study Python" 字串。當讓 Python 執行 lang[0] 的時候,就是要轉到那個字串對象,如同上面的操作一樣。只不過,如果不用 lang 這麼一個變量,後面如果再寫,就費筆墨了,要每次都把那個字符串寫全了。為了省事,還是複製給一個變數吧。變數就是字串的代表了。

字串這個序列的排序方法跟梁山好漢有點不同,第一個不是用數字1表示,而是用數字 0 表示。不只 Python,其它很多語言都是從 0 開始排序的。為什麼要這樣做呢?這就是規定。當然,這個規定是有一定優勢的。這裡不展開,有興趣的網上去 google 一下,有專門對此進行解釋的文章。


0#12##1011o
##3 #4 5 6 7 8 9
s t u d #y l p y t #h
n### ##########


上面的表格中,将这个字符串从第一个到最后一个进行了排序,特别注意,两个单词中间的那个空格,也占用了一个位置。

通过索引能够找到该索引所对应的字符,那么反过来,能不能通过字符,找到其在字符串中的索引值呢?怎么找?


>>> lang.index("p")
6


就这样,是不是已经能够和梁山好汉的例子对上号了?只不过区别在于第一个的索引值是 0。

如果某一天,宋大哥站在大石头上,向着各位弟兄大喊:“兄弟们,都排好队。”等兄弟们排好之后,宋江说:“现在给各位没有老婆的兄弟分配女朋友,我这里已经有了名单,我念叨的兄弟站出来。不过我是按照序号来念的。第 29 号到第 34 号先出列,到旁边房子等候分配女朋友。”

在前面的例子中 lang[1] 能够得到原来字符串的第二个字符 t,就相当于从原来字符串中把这个“切”出来了。不过,我们这么“切”却不影响原来字符串的完整性,当然可以理解为将那个字符 t 赋值一份拿出来了。

那么宋江大哥没有一个一个“切”,而是一下将几个兄弟叫出来。在 Python 中也能做类似事情。


>>> lang
'study Python'  #在前面“切”了若干的字符之后,再看一下该字符串,还是完整的。
>>> lang[2:9]
'udy pyt'


通过 lang[2:9]要得到部分(不是一个)字符,从返回的结果中可以看出,我们得到的是序号分别对应着 2,3,4,5,6,7,8(跟上面的表格对应一下)字符(包括那个空格)。也就是,这种获得部分字符的方法中,能够得到开始需要的以及最后一个序号之前的所对应的字符。有点拗口,自己对照上面的表格数一数就知道了。简单说就是包括开头,不包括结尾。

上述,不管是得到一个还是多个,通过索引得到字符的过程,称之为切片。

切片是一个很有意思的东西。可以“切”出不少花样呢?


>>> lang
'study Python'
>>> b = lang[1:]  # 得到从 1 号到最末尾的字符,这时最后那个需要不用写
>>> b
'tudy Python'
>>> c = lang[:]  # 得到所有字符
>>> c
'study Python'
>>> d = lang[:10]  # 得到从第一个到 10 号之前的字符
>>> d
'study pyth'


在获取切片的时候,如果分号的前面或者后面的序号不写,就表示是到最末(后面的不写)或第一个(前面的不写)

lang[:10]的效果和 lang[0:10]是一样的。


>>> e = lang[0:10]
>>> e
'study pyth'


那么,lang[1:]和 lang[1:11]效果一样吗?请思考后作答。


>>> lang[1:11]
'tudy pytho'
>>> lang[1:]
'tudy python'


果然不一样,你思考对了吗?原因就是前述所说的,如果分号后面有数字,所得到的切片,不包含该数字所对应的序号(前包括,后不包括)。那么,是不是可以这样呢?lang[1:12],不包括 12 号(事实没有 12 号),是不是可以得到 1 到 11 号对应的字符呢?


>>> lang[1:12]
'tudy python'
>>> lang[1:13]
'tudy python'


果然是。并且不仅仅后面写 12,写 13,也能得到同样的结果。但是,我这个特别要提醒,这种获得切片的做法在编程实践中是不提倡的。特别是如果后面要用到循环的时候,这样做或许在什么时候遇到麻烦。

如果在切片的时候,冒号左右都不写数字,就是前面所操作的 c = lang[:],其结果是变量 c 的值与原字符串一样,也就是“复制”了一份。注意,这里的“复制”我打上了引号,意思是如同复制,是不是真的复制呢?可以用下面的方式检验一下


>>> id(c)
3071934536L
>>> id(lang)
3071934536L


id()的作用就是查看该对象在内存地址(就是在内存中的位置编号)。从上面可以看出,两个的内存地址一样,说明 c 和 lang 两个变量指向的是同一个对象。用 c=lang[:]的方式,并没有生成一个新的字符串,而是将变量 c 这个标签也贴在了原来那个字符串上了。


>>> lang = "study python"
>>> c = lang


如果这样操作,变量 c 和 lang 是不是指向同一个对象呢?或者两者所指向的对象内存地址如何呢?看官可以自行查看。

字符串基本操作
字符串是一种序列,所有序列都有如下基本操作:

  • len():求序列长度

  • :连接 2 个序列

  • : 重复序列元素

  • in :判断元素是否存在于序列中

  • max() :返回最大值

  • min() :返回最小值

  • cmp(str1,str2) :比较 2 个序列值是否相同

通过下面的例子,将这几个基本操作在字符串上的使用演示一下:

“+”连接字符串


>>> str1 + str2
'abcdabcde'
>>> str1 + "-->" + str2
'abcd-->abcde'


这其实就是拼接,不过在这里,看官应该有一个更大的观念,我们现在只是学了字符串这一种序列,后面还会遇到列表、元组两种序列,都能够如此实现拼接。

in


>>> "a" in str1
True
>>> "de" in str1
False
>>> "de" in str2
True


in 用来判断某个字符串是不是在另外一个字符串内,或者说判断某个字符串内是否包含某个字符串,如果包含,就返回 True,否则返回 False。

最值


>>> max(str1)
'd'
>>> max(str2)
'e'
>>> min(str1)
'a'


一个字符串中,每个字符在计算机内都是有编码的,也就是对应着一个数字,min()和 max()就是根据这个数字里获得最小值和最大值,然后对应出相应的字符。关于这种编号是多少,看官可以 google 有关字符编码,或者 ASCII 编码什么的,很容易查到。

比较


>>> cmp(str1, str2)
-1


将两个字符串进行比较,也是首先将字符串中的符号转化为对一个的数字,然后比较。如果返回的数值小于零,说明第一个小于第二个,等于 0,则两个相等,大于 0,第一个大于第二个。为了能够明白其所以然,进入下面的分析。


>>> ord('a')
97
>>> ord('b')
98
>>> ord(' ')
32


ord()是一个内建函数,能够返回某个字符(注意,是一个字符,不是多个字符组成的串)所对一个的 ASCII 值(是十进制的),字符 a 在 ASCII 中的值是 97,空格在 ASCII 中也有值,是 32。顺便说明,反过来,根据整数值得到相应字符,可以使用 chr():


>>> chr(97)
'a'
>>> chr(98)
'b'


于是,就得到如下比较结果了:


>>> cmp("a","b")  #a-->97, b-->98, 97 小于 98,所以 a 小于 b
-1
>>> cmp("abc","aaa") 
1
>>> cmp("a","a")
0


看看下面的比较,是怎么进行的呢?


>>> cmp("ad","c")
-1


在字符串的比较中,是两个字符串的第一个字符先比较,如果相等,就比较下一个,如果不相等,就返回结果。直到最后,如果还相等,就返回 0。位数不够时,按照没有处理(注意,没有不是 0,0 在 ASCII 中对应的是 NUL),位数多的那个天然大了。ad 中的 a 先和后面的 c 进行比较,显然 a 小于 c,于是就返回结果 -1。如果进行下面的比较,是最容易让人迷茫的。看官能不能根据刚才阐述的比较远离理解呢?


>>> cmp("123","23")
-1
>>> cmp(123,23)  # 也可以比较整数,这时候就是整数的直接比较了。
1
“*”


字符串中的“乘法”,这个乘法,就是重复那个字符串的含义。在某些时候很好用的。比如我要打印一个华丽的分割线:


>>> str1*3
'abcdabcdabcd'
>>> print "-"*20  # 不用输入很多个`-`
--------------------
len()


要知道一个字符串有多少个字符,一种方法是从头开始,盯着屏幕数一数。哦,这不是计算机在干活,是键客在干活。

键客,不是剑客。剑客是以剑为武器的侠客;而键客是以键盘为武器的侠客。当然,还有贱客,那是贱人的最高境界,贱到大侠的程度,比如岳不群之流。
键客这样来数字符串长度:


>>> a="hello"
>>> len(a)
5


使用的是一个函数 len(object)。得到的结果就是该字符串长度。


>>> m = len(a) # 把结果返回后赋值给一个变量
>>> m
5
>>> type(m)   # 这个返回值(变量)是一个整数型
<type &#39;int&#39;>


字符串格式化输出
什么是格式化?在维基百科中有专门的词条,这么说的:

格式化是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。
不知道你是否知道这种“格式化”。显然,此格式化非我们这里所说的,我们说的是字符串的格式化,或者说成“格式化字符串”,都可以,表示的意思就是:

格式化字符串,是 C、C++ 等程序设计语言 printf 类函数中用于指定输出参数的格式与相对位置的字符串参数。其中的转换说明(conversion specification)用于把随后对应的 0 个或多个函数参数转换为相应的格式输出;格式化字符串中转换说明以外的其它字符原样输出。
这也是来自维基百科的定义。在这个定义中,是用 C 语言作为例子,并且用了其输出函数来说明。在 Python 中,也有同样的操作和类似的函数 print,此前我们已经了解一二了。

如果将那个定义说的通俗一些,字符串格式化化,就是要先制定一个模板,在这个模板中某个或者某几个地方留出空位来,然后在那些空位填上字符串。那么,那些空位,需要用一个符号来表示,这个符号通常被叫做占位符(仅仅是占据着那个位置,并不是输出的内容)。


>>> "I like %s"
&#39;I like %s&#39;


在这个字符串中,有一个符号:%s,就是一个占位符,这个占位符可以被其它的字符串代替。比如:


>>> "I like %s" % "python"
&#39;I like python&#39;
>>> "I like %s" % "Pascal"
&#39;I like Pascal&#39;


这是较为常用的一种字符串输出方式。

另外,不同的占位符,会表示那个位置应该被不同类型的对象填充。下面列出许多,供参考。不过,不用记忆,常用的只有 %s 和 %d,或者再加上 %f,其它的如果需要了,到这里来查即可。


占位符 说明
%s 字符串(采用 str()的显示)
%r 字符串(采用 repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为 e)
%E 指数 (基底写为 E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e) 或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)


看例子:


>>> a = "%d years" % 15
>>> print a
15 years


当然,还可以在一个字符串中设置多个占位符,就像下面一样


>>> print "Suzhou is more than %d years. %s lives in here." % (2500, "qiwsir")
Suzhou is more than 2500 years. qiwsir lives in here.


对于浮点数字的打印输出,还可以限定输出的小数位数和其它样式。


>>> print "Today&#39;s temperature is %.2f" % 12.235
Today&#39;s temperature is 12.23
>>> print "Today&#39;s temperature is %+.2f" % 12.235
Today&#39;s temperature is +12.23


注意,上面的例子中,没有实现四舍五入的操作。只是截取。

常用的字符串方法
字符串的方法很多。可以通过 dir 来查看:


>>> dir(str)
[&#39;add&#39;, &#39;class&#39;, &#39;contains&#39;, &#39;delattr&#39;, &#39;doc&#39;, &#39;eq&#39;, &#39;format&#39;, &#39;ge&#39;, &#39;getattribute&#39;, &#39;getitem&#39;, &#39;getnewargs&#39;, &#39;getslice&#39;, &#39;gt&#39;, &#39;hash&#39;, &#39;init&#39;, &#39;le&#39;, &#39;len&#39;, &#39;lt&#39;, &#39;mod&#39;, &#39;mul&#39;, &#39;ne&#39;, &#39;new&#39;, &#39;reduce&#39;, &#39;reduce_ex&#39;, &#39;repr&#39;, &#39;rmod&#39;, &#39;rmul&#39;, &#39;setattr&#39;, &#39;sizeof&#39;, &#39;str&#39;, &#39;subclasshook&#39;, &#39;_formatter_field_name_split&#39;, &#39;_formatter_parser&#39;, &#39;capitalize&#39;, &#39;center&#39;, &#39;count&#39;, &#39;decode&#39;, &#39;encode&#39;, &#39;endswith&#39;, &#39;expandtabs&#39;, &#39;find&#39;, &#39;format&#39;, &#39;index&#39;, &#39;isalnum&#39;, &#39;isalpha&#39;, &#39;isdigit&#39;, &#39;islower&#39;, &#39;isspace&#39;, &#39;istitle&#39;, &#39;isupper&#39;, &#39;join&#39;, &#39;ljust&#39;, &#39;lower&#39;, &#39;lstrip&#39;, &#39;partition&#39;, &#39;replace&#39;, &#39;rfind&#39;, &#39;rindex&#39;, &#39;rjust&#39;, &#39;rpartition&#39;, &#39;rsplit&#39;, &#39;rstrip&#39;, &#39;split&#39;, &#39;splitlines&#39;, &#39;startswith&#39;, &#39;strip&#39;, &#39;swapcase&#39;, &#39;title&#39;, &#39;translate&#39;, &#39;upper&#39;, &#39;zfill&#39;]


这么多,不会一一介绍,要了解某个具体的含义和使用方法,最好是使用 help 查看。举例:


>>> help(str.isalpha)



Help on method_descriptor:

isalpha(...)
  S.isalpha() -> bool

  Return True if all characters in S are alphabetic
  and there is at least one character in S, False otherwise.


按照这里的说明,就可以在交互模式下进行实验。


>>> "python".isalpha()  # 字符串全是字母,应该返回 True
True
>>> "2python".isalpha()  # 字符串含非字母,返回 False
False


split

这个函数的作用是将字符串根据某个分割符进行分割。


>>> a = "I LOVE PYTHON"
>>> a.split(" ")
[&#39;I&#39;, &#39;LOVE&#39;, &#39;PYTHON&#39;]


这是用空格作为分割,得到了一个名字叫做列表(list)的返回值,关于列表的内容,后续会介绍。还能用别的分隔吗?


>>> b = "www.itdiffer.com"
>>> b.split(".")
[&#39;www&#39;, &#39;itdiffer&#39;, &#39;com&#39;]


去掉字符串两头的空格

这个功能,在让用户输入一些信息的时候非常有用。有的朋友喜欢输入结束的时候敲击空格,比如让他输入自己的名字,输完了,他来个空格。有的则喜欢先加一个空格,总做的输入的第一个字前面应该空两个格。

这些空格是没用的。Python 考虑到有不少人可能有这个习惯,因此就帮助程序员把这些空格去掉。

方法是:

  1. S.strip() 去掉字符串的左右空格

  2. S.lstrip() 去掉字符串的左边空格

  3. S.rstrip() 去掉字符串的右边空格

  4. 例如:


>>> b=" hello "  # 两边有空格
>>> b.strip()
&#39;hello&#39;
>>> b
&#39; hello &#39;


特别注意,原来的值没有变化,而是新返回了一个结果。


>>> b.lstrip()  # 去掉左边的空格
&#39;hello &#39;
>>> b.rstrip()  # 去掉右边的空格
&#39; hello&#39;


字符大小写的转换

对于英文,有时候要用到大小写转换。最有名驼峰命名,里面就有一些大写和小写的参合。如果有兴趣,可以来这里看自动将字符串转化为驼峰命名形式的方法。

在 Python 中有下面一堆内建函数,用来实现各种类型的大小写转化

  • S.upper() #S 中的字母大写

  • S.lower() #S 中的字母小写

  • S.capitalize() # 首字母大写

  • S.isupper() #S 中的字母是否全是大写

  • S.islower() #S 中的字母是否全是小写

  • S.istitle()

  • 看例子:


>>> a = "qiwsir,Python" 
>>> a.upper()    # 将小写字母完全变成大写字母
&#39;QIWSIR,PYTHON&#39;
>>> a        # 原数据对象并没有改变
&#39;qiwsir,Python&#39;
>>> b = a.upper()
>>> b
&#39;QIWSIR,PYTHON&#39;
>>> c = b.lower()  # 将所有的小写字母变成大写字母
>>> c
&#39;qiwsir,Python&#39;

>>> a
&#39;qiwsir,Python&#39;
>>> a.capitalize() # 把字符串的第一个字母变成大写
&#39;Qiwsir,Python&#39;
>>> a        # 原数据对象没有改变
&#39;qiwsir,Python&#39;
>>> b = a.capitalize() # 新建立了一个
>>> b
&#39;Qiwsir,Python&#39;

>>> a = "qiwsir,github"  # 这里的问题就是网友白羽毛指出的,非常感谢他。
>>> a.istitle()
False
>>> a = "QIWSIR"    # 当全是大写的时候,返回 False
>>> a.istitle()
False
>>> a = "qIWSIR"
>>> a.istitle()
False
>>> a = "Qiwsir,github" # 如果这样,也返回 False
>>> a.istitle()
False
>>> a = "Qiwsir"    # 这样是 True
>>> a.istitle()
True
>>> a = &#39;Qiwsir,Github&#39; # 这样也是 True
>>> a.istitle()
True

>>> a = "Qiwsir"
>>> a.isupper()
False
>>> a.upper().isupper()
True
>>> a.islower()
False
>>> a.lower().islower()
True


再探究一下,可以这么做:


>>> a = "This is a Book"
>>> a.istitle()
False
>>> b = a.title()   # 这样就把所有单词的第一个字母转化为大写
>>> b
&#39;This Is A Book&#39;
>>> b.istitle()    # 判断每个单词的第一个字母是否为大写
True


join 拼接字符串

用“+”能够拼接字符串,但不是什么情况下都能够如愿的。比如,将列表(关于列表,后续详细说,它是另外一种类型)中的每个字符(串)元素拼接成一个字符串,并且用某个符号连接,如果用“+”,就比较麻烦了(是能够实现的,麻烦)。

用字符串的 join 就比较容易实现。


>>> b
&#39;www.itdiffer.com&#39;
>>> c = b.split(".")
>>> c
[&#39;www&#39;, &#39;itdiffer&#39;, &#39;com&#39;]
>>> ".".join(c)
&#39;www.itdiffer.com&#39;
>>> "*".join(c)
&#39;www*itdiffer*com&#39;



这种拼接,是不是简单呢?

以上是分享Python中常用操作字串的函數與方法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python:自動化,腳本和任務管理Python:自動化,腳本和任務管理Apr 16, 2025 am 12:14 AM

Python在自動化、腳本編寫和任務管理中表現出色。 1)自動化:通過標準庫如os、shutil實現文件備份。 2)腳本編寫:使用psutil庫監控系統資源。 3)任務管理:利用schedule庫調度任務。 Python的易用性和豐富庫支持使其在這些領域中成為首選工具。

Python和時間:充分利用您的學習時間Python和時間:充分利用您的學習時間Apr 14, 2025 am 12:02 AM

要在有限的時間內最大化學習Python的效率,可以使用Python的datetime、time和schedule模塊。 1.datetime模塊用於記錄和規劃學習時間。 2.time模塊幫助設置學習和休息時間。 3.schedule模塊自動化安排每週學習任務。

Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),