全角半角切换,input输入中文:标点,代码默认=:(英文),反之一样?

# 输入,标点符号默认中英文相互切换

# 编号①②③   ord( '①' ): 9312
z=input('''''')
b= input('''请输入切片位置:''')
d= input('''请输入回车位置:''')
z_list = z.strip().split(d)
for index,value in enumerate(z_list):
    print('{}.{}'.format(  chr( 9312+index ) , value.split(b)[1] ))


'''
排序算法一:冒泡排序 排序算法二:快速排序 排序算法三:堆排序 排序算法四:归并排序 排序算法五:插入排序 排序算法六:基数排序 排序算法七:选择排序 排序算法八:堆排序 排序算法九:希尔排序 排序算法十:快速排序(FIFO) 排序算法十一:树结构排序
'''

# 输入中文:,代码默认=:(英文),反之一样
  可以创建中、英文标点码表字典,轮询字符输入文本字符串中、英标点替换就好。
#!/usr/bin/nve python
# coding: utf-8

en_punc =',;.:!? '
ch_punc =',;。:!? '
en_punc_dict = dict(zip(en_punc, ch_punc))
ch_punc_dict = dict(zip(ch_punc, en_punc))


text = '''
排序算法一:冒泡排序。 排序算法二:快速排序。 排序算法三:堆排序。 排序算法四:归并排序 排序算法五:插入排序 排序算法六:基数排序 排序算法七:选择排序 排序算法八:堆排序。 排序算法九:希尔排序 排序算法十:快速排序(FIFO)。 排序算法十一:树结构排序……
'''
# 输入中文:,代码默认=:(英文),反之一样

text2 = []

for i in text:

    if i in en_punc:
        i = en_punc_dict.get(i)
    elif i in ch_punc:
        i = ch_punc_dict.get(i)

    text2.append(i)

text2 = ''.join(text2)
print(f"\n\n输入文本:\n{text}\n\n代码处理后:\n{text2}\n")

img


如果输入文本只有中、英文一种标点,只须轮询相反标点列表,用str.replace()、re.sub()任一个方法替换输入文本的标点为另一类标点。这样子,比轮询输入文本高效,特别是输入文本“很大“。

全角状态下,一个英文字母占2个字符,一个汉字占2个字符;
半角状态下,一个英文字母占1个字符,一个汉字占2个字符;
所以说你输入中文的话(包括中文标点)全角和半角都是一样的,不影响;如果是英文的话(包括英文标点),你就要考虑全角半角状态了。