欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

問題描述

輸入樣例:

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 只是一個(gè)變量,轉(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)

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

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

輸入:

Only the 11 CAPItal LeTtERS are replaced

輸出:

Only the 11 XZKItal OeGtVIH are replaced

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

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

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

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

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

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

解決方案:

首先想到的是定義一個(gè)對象存儲當(dāng)前的值和一個(gè)標(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實(shí)現(xiàn)26個(gè)英文字母按規(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()

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

相關(guān)文章

  • Python操作MySQL數(shù)據(jù)庫的簡單步驟分享

    Python操作MySQL數(shù)據(jù)庫的簡單步驟分享

    這篇文章主要給大家介紹了關(guān)于Python操作MySQL數(shù)據(jù)庫的簡單步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • wx.CheckBox創(chuàng)建復(fù)選框控件并響應(yīng)鼠標(biāo)點(diǎn)擊事件

    wx.CheckBox創(chuàng)建復(fù)選框控件并響應(yīng)鼠標(biāo)點(diǎn)擊事件

    這篇文章主要為大家詳細(xì)介紹了wx.CheckBox創(chuàng)建復(fù)選框控件并響應(yīng)鼠標(biāo)點(diǎn)擊事件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 如何用用Python制作NFT區(qū)塊鏈作品

    如何用用Python制作NFT區(qū)塊鏈作品

    在本文中,我們將學(xué)習(xí)如何使用 Brownie、Python 和 Chainlink 來制作非同質(zhì)化的 NFT 作品,并在 OpenSea NFT 市場上展示和銷售我們的成果。
    2021-06-06
  • Python中ini配置文件讀寫的實(shí)現(xiàn)

    Python中ini配置文件讀寫的實(shí)現(xiàn)

    本文主要介紹了Python中ini配置文件讀寫的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Flask框架Flask-Principal基本用法實(shí)例分析

    Flask框架Flask-Principal基本用法實(shí)例分析

    這篇文章主要介紹了Flask框架Flask-Principal基本用法,結(jié)合實(shí)例形式分析了Flask框架flask-principal擴(kuò)展的基本功能、安裝、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • 詳解如何修改python中字典的鍵和值

    詳解如何修改python中字典的鍵和值

    這篇文章主要介紹了詳解如何修改python中字典的鍵和值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python開發(fā)sdk模塊的方法

    python開發(fā)sdk模塊的方法

    這篇文章主要介紹了python開發(fā)sdk模塊,通過setup.py將框架安裝到python環(huán)境中,開發(fā)成第三方模塊來,?以此來調(diào)用,增加使用方便及安全高效性,需要的朋友可以參考下
    2022-07-07
  • Python綜合應(yīng)用名片管理系統(tǒng)案例詳解

    Python綜合應(yīng)用名片管理系統(tǒng)案例詳解

    這篇文章主要介紹了Python綜合應(yīng)用名片管理系統(tǒng),結(jié)合具體案例形式詳細(xì)分析了Python名片管理系統(tǒng)相關(guān)步驟、原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • Pycharm安裝第三方庫并更換鏡像的詳細(xì)教程

    Pycharm安裝第三方庫并更換鏡像的詳細(xì)教程

    在使用pycharm學(xué)習(xí)python的時(shí)候,經(jīng)常需要第三方庫,沒有第三方庫程序就會報(bào)錯(cuò),pycharm也會提醒你要安裝所需要的庫,下面這篇文章主要給大家介紹了關(guān)于Pycharm安裝第三方庫并更換鏡像的詳細(xì)教程,需要的朋友可以參考下
    2023-05-05
  • Python3利用Qt5實(shí)現(xiàn)簡易的五子棋游戲

    Python3利用Qt5實(shí)現(xiàn)簡易的五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了Python3利用Qt5實(shí)現(xiàn)簡易的五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論