栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

练习:电话拨号键盘的字母组合(一个缩进给我惹了麻烦)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

练习:电话拨号键盘的字母组合(一个缩进给我惹了麻烦)


  • 我的CSDN主页
  • My Python 学习个人备忘录

       练习:给定不大于4位的数字(2~9),输出所有的键面字母电话拨号键盘键面字母组合。
    1. 题目
    2. 代码运行效果
    3. 完整代码
    4. 一个缩进的麻烦
    5. 正整数注释

    练习题目


    回首页

    代码运行效果



    回首页

    python完整代码 (如果从语句注释不能清楚作用,请评论区留言指教和探讨。欄)
    #/sur/bin/nve python 
    # coding: utf-8
    
    def phone_letter(s):
        '''转换数字为电话键i盘字母组合'''
        if s=='': #如果输入为空,返回空列表
            return [] #拦截输入为空,则返回空列表,后面的代码不用执,以提升代码效率。
        phone_letters = [
                'abc',
                'def',
                'ghi',
                'jkl',
                'mno',
                'pqrs',
                'tuv',
                'wxyz'
                ] #定义电话键盘字母映射列表
        if len(s)==1: #输入字符仅一个数字,返回所在键盘字母列表
            return list(phone_letters[int(s)-2]) #拦截输入一个数字,则返回值,后面的代码不用执行,以提升代码效 率。
        letters =[
                ' ',
                ' ',
                ' ',
                ' '
                ] #初始化四位数字字母映射列表(这里要注意,不可以置'',语句不会报错,但实际上并不执行,因没有元素供遍历。对语句语法,是无懈可击的,''也是字符。)
        k = 0
        for i in s:
            letters[k] = phone_letters[int(i)-2]
            k += 1
        result = [] #初始化最后输出字母映射组合列表
        for i in letters[0]:
            if letters[0]==' ':
                i = ''
            for j in letters[1]:
                if letters[1]==' ':                                        j = ''
                for m in letters[2]:
                    if letters[2]==' ':                                        m = ''
                    for n in letters[3]:
                        if letters[3]==' ':                                        n = ''
                        result.append(''.join((i,j,m,n)))
        return result #不定输入的2~4个数字,我目前还想不到更好的解决办法,只好傻傻地枚举。
    
    while True:
        numbers = input('nn输入数字组合(0~9):').strip() #接收键盘输入并去除首尾空格
        flag = True
        for i in numbers: #判断输入合规,否则报错重输
            if (i not in '23456789') or len(numbers)>4:
                flag = False
        if flag is True:
            break
        input(f'n{"﹊"*21}n{"输入错误!请重试".rjust(20)}n{"﹊"*21}')
        continue
    print(f'nnn{"":10}“{numbers}”电话键盘字母组合n{"﹊"*21}n{phone_letter(numbers)}n{"﹊"*21}')
    

    回首页

    一个缩进给我带来了麻烦Ծ‸Ծ    我把最后的结果输出语句前面打了四个空格的缩进,怎么也等不来结果输出
    while True:
        numbers = input('nn输入数字组合(0~9):').strip() #接收键盘输入并去除首尾空格
        flag = True
        for i in numbers: #判断输入合规,否则报错重输
            if (i not in '23456789') or len(numbers)>4:
                flag = False
        if flag is True:
            break
        input(f'n{"﹊"*21}n{"输入错误!请重试".rjust(20)}n{"﹊"*21}')
        continue
    print(f'nnn{"":10}“{numbers}”电话键盘字母组合n{"﹊"*21}n{phone_letter(numbers)}n{"﹊"*21}')
    

      后面再放一条print()语句,是可以出结果的!?類類
    while True:
        numbers = input('nn输入数字组合(0~9):').strip() #接收键盘输入并去除首尾空格
        flag = True
        for i in numbers: #判断输入合规,否则报错重输
            if (i not in '23456789') or len(numbers)>4:
                flag = False
        if flag is True:
            break
        input(f'n{"﹊"*21}n{"输入错误!请重试".rjust(20)}n{"﹊"*21}')
        continue
        print(f'nnn{"":10}“{numbers}”电话键盘字母组合n{"﹊"*21}n{phone_letter(numbers)}n{"﹊"*21}')
    print(phone_letter(numbers))
    

       查来查去,竟然是在于那四个空格的缩进!那那样子,就处于while循环之内了,又在continue语句之后(就永远执行不到那条结果输出语句了若若)。
    while True:
        numbers = input('nn输入数字组合(0~9):').strip() #接收键盘输入并去除首尾空格
        flag = True
        for i in numbers: #判断输入合规,否则报错重输
            if (i not in '23456789') or len(numbers)>4:
                flag = False
        if flag is True:
            break
        input(f'n{"﹊"*21}n{"输入错误!请重试".rjust(20)}n{"﹊"*21}')
        continue
    print(f'nnn{"":10}“{numbers}”电话键盘字母组合n{"﹊"*21}n{phone_letter(numbers)}n{"﹊"*21}')
    
       退去四个空格的缩进,最后输出结果“应声而出”。浪浪


    回首页

       正整数的释义。


    回首页

    我的博文推荐:
    • 尼姆游戏(聪明版/傻瓜式•人机对战)(当前阅读3205)(代码优化版)
    • 练习:字符串统计(坑:f‘string‘报错)(当前阅读1088)
    • 练习:求列表(整数列表)平衡点(当前阅读1314)
    • 密码强度检测器(当前阅读1052)
    • (当前阅读)
    推荐条件 点阅破千

    参考文章:

    上一篇: 练习:求给定数列的第一个缺失的正整数
    下一篇: 


    回首页

    精品文章:

    • 正则表达式
    • 通过内置对象理解python
    • Python 完全自学手册
    • 海象运算符
    • Python中的 `!=`与`is not`不同
    • 学习编程的正确方法

    来源:老齐教室


    CSDN实用技巧博文:
    • 8个好用到爆的Python实用技巧

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/657490.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号