国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python中字符串的修改及傳參詳解

2020-02-23 04:07:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

發(fā)現(xiàn)問(wèn)題

最近在面試的時(shí)候遇到一個(gè)題目,選擇用JavaScript或者Python實(shí)現(xiàn)字符串反轉(zhuǎn),我選擇了Python,然后寫出了代碼(錯(cuò)誤的):

#!/usr/bin/env python#-*-coding:utf-8-*-__author__ = 'ZhangHe'def reverse(s): l = 0 r = len(s) - 1 while l < r:  s[l],s[r] = s[r],s[l]  l += 1  r -= 1 return s

然后面試官問(wèn)了兩個(gè)問(wèn)題:

(1)可以這樣修改字符串的值嗎?【我回答的,可以】【回答錯(cuò)誤】

(2)傳入的參數(shù)是地址?還是副本?【我回答的,傳值。數(shù)字,字符串,元組傳值(immutable);list和dict傳引用(mutable);】【回答傳值,可以直接修改】【回答錯(cuò)誤,正確的是傳值,immutable】

思考如下

雖然經(jīng)常使用字符串,但是還真沒(méi)有研究過(guò)這個(gè)問(wèn)題,于是上網(wǎng)搜了一下資料:

Python中的字符串是不可變類型,就是說(shuō)改變一個(gè)字符串的元素需要新建一個(gè)新的字符串。

字符串是由獨(dú)立的字符組成的,也是一種序列,序列的通用操作方法也適用于字符串。

例如:

      通過(guò)切片操作順序地訪問(wèn)子串;

      通過(guò)len()求字符串的長(zhǎng)度等;

      通過(guò)in或not in操作符判斷字符串中是否存在某個(gè)字符。

Python里面沒(méi)有字符這個(gè)類型,而是用長(zhǎng)度為1 的字符串來(lái)表示這個(gè)概念,當(dāng)然,這其實(shí)也是一個(gè)子串。

訪問(wèn)字符串舉例:

1 aString = 'Hello World!'2 print(aString[0])3 print(aString[1:5])4 print(aString[6:])

輸出:

HelloWorld!

那么如何改變一個(gè)字符串呢?

可以通過(guò)給一個(gè)變量賦值(或者重賦值)的方式“更新”一個(gè)已有的字符串。新的值可能與原有值差不多,也可能跟原有串完全不同。

例如:

1 aString = 'Hello World!'2 aString = aString[:6] + 'Python!'3 print(aString)4 aString = 'different string altogether'5 print(aString)

輸出:

Hello Python!different string altogether

那么如何刪除一個(gè)字符或字符串呢?

再重復(fù)一遍,字符串是不可變的,所以不能僅僅刪除一個(gè)字符串里的某個(gè)字符,你能做的是清空一個(gè)空字符串,或者是把剔除了不需要的部分后的字符串組合起來(lái)形成一個(gè)新串。

假設(shè)您想要從“Hello World!”里面刪除小寫的“l(fā)”,那么您需要這樣做:

1 aString = 'Hello World!'2 aString = aString[:3] + aString[4:]3 print(aString)

輸出:

Helo World!

通過(guò)賦一個(gè)空字符串或者使用del 語(yǔ)句來(lái)清空或者刪除一個(gè)字符串。不過(guò),在大部分應(yīng)用程序里,沒(méi)有必要顯式的刪除字符串。定義這個(gè)字符串的代碼最終會(huì)結(jié)束,那時(shí)Python 會(huì)自動(dòng)釋放這些字符串。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿瓦提县| 任丘市| 长岛县| 怀宁县| 永兴县| 阿城市| 西华县| 临泉县| 卫辉市| 波密县| 扬中市| 海门市| 普格县| 七台河市| 余姚市| 台中市| 依安县| 邹平县| 临泉县| 临沂市| 台东县| 开远市| 朔州市| 桂阳县| 遵义县| 吐鲁番市| 灵丘县| 海宁市| 绥化市| 丹阳市| 凤城市| 巴林左旗| 高平市| 三台县| 商河县| 湾仔区| 全州县| 喜德县| 麻城市| 全州县| 岳普湖县|