最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python如何將給定字符串中的大寫英文字母按以下對應(yīng)規(guī)則替換

 更新時間:2021年10月14日 11:41:22   作者:碩子鴿  
這篇文章主要介紹了Python如何將給定字符串中的大寫英文字母按以下對應(yīng)規(guī)則替換,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

問題描述

輸入樣例:

Only the 11 CAPItal LeTtERS are replaced

輸出樣例:

Only the 11 XZKItal OeGtVIH are replaced

解題思路

首先想到的是使用字典匹配字符然后遍歷替換,其次想到的是使用ASCLL碼,后者更為方便簡單。

思路一

inp = input()
dist = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
        'N' 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
for i in inp:
    if i in dist:
        index = dist.index(i)
        inp = inp.replace(i, dist[-index - 1])
print(inp)

思路二

str = input()
for i in str:
    num = ord(i)  # 得到ASCII碼
    if (65 <= num <= 90):  # 如果是大寫字母
        str = str.replace(i, chr(155 - num))
print(str)

遇到的問題:

在思路二中,我之前的代碼是這樣的:

str = input()
def replace(str):
    for i in str:
        num = ord(i)  # 得到ASCII碼
        if (num >= 65 & num <= 90):  # 如果是大寫字母
            i = chr(155 - num)
    return str
replace(str)
print(str)

后來意識到 i 只是一個變量,轉(zhuǎn)瞬即逝,我并沒有把它存住。

然后想到的用 replace()函數(shù):

str = input()
for i in str:
    num = ord(i)  # 得到ASCII碼
    if (65 <= num <= 90):  # 如果是大寫字母
        str.replace(i, chr(155 - num))
print(str)

但是還是不對,因為我沒有存儲 replace()函數(shù)的返回值,導(dǎo)致雖然替換了,但是沒有存儲它,所以結(jié)果沒有變化。

最終的代碼就是上的那個了,看起來完美無缺,但是全部都是做的,為什么?

輸入:

Only the 11 CAPItal LeTtERS are replaced

輸出:

Only the 11 XZKItal OeGtVIH are replaced

可以看到除了第一個 O 之外其他的都對,那為什么 O 沒有換呢?

其實它換了,只是換了兩次,負(fù)負(fù)得正,又回來了。

因為 replace()方法會把字符串中所有符合條件的字母替換掉。

比如輸入 OL ,我們想要的結(jié)果為 LO,但上述代碼實際上輸出的是 OO;

第一次循環(huán)把 O 替換成了 L ,此時字符串為 LL;

第二次循環(huán),把所有的 L 都替換成了 O,所以輸出結(jié)果為 OO。

解決方案:

首先想到的是定義一個對象存儲當(dāng)前的值和一個標(biāo)記,替換之前先看它是否被訪問過了,如果被訪問過了就跳過。

還有一種方法就是拼接字符串,讓 replace 方法只作用于當(dāng)前字符。

最終答案

str = input()
newStr = ''
for i in str:
    num = ord(i)  # 得到ASCII碼
    if (65 <= num <= 90):  # 如果是大寫字母
        i = i.replace(i, chr(155 - num))
    newStr += i
print(newStr)

還有更簡單的方法:

str = input()
newStr = ''
for i in str:
    if i.isupper():
        newStr += chr(155 - ord(i))
    else:
        newStr += i
        
print(newStr)

python實現(xiàn)26個英文字母按規(guī)則輸出

import string
n=eval(input())
s=string.ascii_uppercase
for i in s:
print(i,end='')
if (s.find(i)+1)%n==0:
print()

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python3.5 tkinter實現(xiàn)頁面跳轉(zhuǎn)

    python3.5 tkinter實現(xiàn)頁面跳轉(zhuǎn)

    這篇文章主要為大家詳細介紹了python3.5 tkinter實現(xiàn)頁面跳轉(zhuǎn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python的重要技能輸入與輸出字符串格式化使用詳解

    python的重要技能輸入與輸出字符串格式化使用詳解

    這篇文章主要為大家介紹了python的重要技能輸入與輸出格式化使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • python輸出第n個默尼森數(shù)的實現(xiàn)示例

    python輸出第n個默尼森數(shù)的實現(xiàn)示例

    這篇文章主要介紹了python輸出第n個默尼森數(shù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 合并百度影音的離線數(shù)據(jù)( with python 2.3)

    合并百度影音的離線數(shù)據(jù)( with python 2.3)

    這篇文章主要介紹了合并百度影音的離線數(shù)據(jù)( with python 2.3)的相關(guān)資料
    2015-08-08
  • Python實現(xiàn)合并兩個列表的方法分析

    Python實現(xiàn)合并兩個列表的方法分析

    這篇文章主要介紹了Python實現(xiàn)合并兩個列表的方法,結(jié)合實例形式對比分析了常見的Python列表合并操作技巧,需要的朋友可以參考下
    2018-05-05
  • 詳解Python?flask的前后端交互

    詳解Python?flask的前后端交互

    這篇文章主要為大家詳細介紹了Python?flask的前后端交互,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python設(shè)計模式行為型責(zé)任鏈模式

    Python設(shè)計模式行為型責(zé)任鏈模式

    這篇文章主要介紹了Python設(shè)計模式行為型責(zé)任鏈模式,責(zé)任鏈模式將能處理請求的對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有一個對象處理請求為止,避免請求的發(fā)送者和接收者之間的耦合關(guān)系,下圍繞改內(nèi)容介紹具有一點的參考價值,需要的朋友可以參考下
    2022-02-02
  • 教你使用Python寫一個簡單的JSONParser

    教你使用Python寫一個簡單的JSONParser

    這篇文章主要介紹了教你使用Python寫一個簡單的JSONParser,它的整個效果,有點類似于 python 標(biāo)準(zhǔn)庫 json 的 json.load() 方法,需要的朋友可以參考下
    2023-04-04
  • 解決Pandas生成Excel時的sheet問題的方法總結(jié)

    解決Pandas生成Excel時的sheet問題的方法總結(jié)

    估計有不少小伙伴在將 DataFrame導(dǎo)入到Excel的時候,遇到過下面這種尷尬的情況:想給一個現(xiàn)有的Excel文件追加一個sheet,結(jié)果發(fā)現(xiàn)其它的sheet都沒了等,本文就來告訴你如何解決這些問題
    2022-08-08
  • pandas增加列的七種方法總結(jié)

    pandas增加列的七種方法總結(jié)

    這篇文章主要為大家詳細介紹了python中pandas增加列的七種常用方法,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以參考一下
    2023-11-11

最新評論

类乌齐县| 盱眙县| 澄城县| 潼关县| 德阳市| 乌苏市| 黔西| 略阳县| 甘泉县| 宁陕县| 肇东市| 津市市| 历史| 丽江市| 高安市| 寻甸| 长春市| 苏州市| 青田县| 依兰县| 武川县| 浙江省| 玉环县| 丰镇市| 唐山市| 缙云县| 朝阳区| 周至县| 宁河县| 共和县| 赤水市| 东山县| 手游| 化隆| 龙川县| 唐河县| 化州市| 大安市| 白银市| 康定县| 姜堰市|