问:

【基础题】:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序印出各位数字
【提高题】:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上 5, 然后用和除以 10 的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

答:

基础题:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序印出各位数字

方法1:

num = input("请输入不大于五位数的数字:")
print("长度为:%d" % len(num))
print("反转后数字为:%s" % num[::-1])

方法2:

def f(n):
str_n = str(n)
length = len(str_n)
reversed_n = int(str_n[::-1])
return length, reversed_n


if __name__ == "__main__":
c = input("请输入不多于5位的数字:")
a, b = f(c)
print("它是%s位数,逆序为%s" % (a, b))

方法3:

x = input("请输入不多于5位的数字:")
print(len(x))

for i in range(0, len(x)).__reversed__():
print(x[i], end=" ")

方法4:

num = input("请输入不大于五位数的数字:")
length = len(num)
print("{}是{}位数".format(num, length))
print("{}逆序后的数字为:{}".format(num, num[::-1]))

方法5:

msg = input('请输入一个不多于5位的正整数>>>')
num = int(msg)
n = len(msg)
print("该数字是 {} 位数".format(n))
for i in range(n):
single_num = num % 10
print(single_num)
num = num // 10

方法6:

num = input("Please input a num:")
print("长度是:{0}".format(len(num)))
print("倒序数字是:{0}".format(num[::-1]))

方法7:

num = input("输入一个不大于5位的正整数:")
print("{}是一个{}位数,倒数打印{}".format(num,len(num),num[::-1]))

方法8:

number = input("Enter a number: ")
print(f'Number has got {len(number)} digits')
print(f'Reversed Number is {number[::-1]}')

提高题:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上 5, 然后用和除以 10 的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

方法1:

telephone_num = input("加密前的数据:")
telephone_num_new = []
for number in telephone_num:
int_num = int(number)
int_num = (int_num + 5) % 10
telephone_num_new.append(int_num)

telephone_num_new[0], telephone_num_new[3] = telephone_num_new[3], telephone_num_new[0]
telephone_num_new[1], telephone_num_new[2] = telephone_num_new[2], telephone_num_new[1]

number_str = ""

for number_new in telephone_num_new:
number_str = number_str + str(number_new)

print("加密后的数据:", number_str)

方法2:

number = input('Enter data to be encryted: ')
basic_element = list(range(10))
dictionary = dict(zip(basic_element, basic_element[5:] + basic_element[:5]))

encrypted_number = [str(dictionary[int(digit)]) for digit in number]

encrypted_number[0],encrypted_number[3], encrypted_number[1],encrypted_number[2] = \
encrypted_number[3],encrypted_number[0], encrypted_number[2],encrypted_number[1]

encrypted_number = ''.join(encrypted_number)
print(f'Encrypted number: {encrypted_number}')

方法3:

while True:
tele_num = input("输入电话号码:")
if len(tele_num) == 4: # 判断输入字符串位数
try:
if int(tele_num) >= 0: # 判断是否为4位整数
break
except:
pass
out_tele_num = []
for num in tele_num:
num = (int(num) + 5) % 10
out_tele_num.append(num)
for i in out_tele_num:
print(i, end='')
print('')
print("{}".format(''.join(map(str, out_tele_num[::-1]))))

Python【每日一问】29的更多相关文章

  1. [python每日一练]--0012:敏感词过滤 type2

    题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...

  2. Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词

    #coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...

  3. python每日一函数 - divmod数字处理函数

    python每日一函数 - divmod数字处理函数 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: ...

  4. 每日一问:Android 消息机制,我有必要再讲一次!

    坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 我 17 年的 面试系列,曾写过一篇名为:Android 面试(五):探 ...

  5. 每日一问:谈谈 volatile 关键字

    这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下. 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了 ...

  6. 每日一问:讲讲 Java 虚拟机的垃圾回收

    昨天我们用比较精简的文字讲了 Java 虚拟机结构,没看过的可以直接从这里查看: 每日一问:你了解 Java 虚拟机结构么? 今天我们必须来看看 Java 虚拟机的垃圾回收算法是怎样的.不过在开始之前 ...

  7. 每日一问:你了解 Java 虚拟机结构么?

    对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...

  8. 每日一问:LayoutParams 你知道多少?

    前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的.我们 ...

  9. 每日一问:简述 View 的绘制流程

    Android 开发中经常需要用一些自定义 View 去满足产品和设计的脑洞,所以 View 的绘制流程至关重要.网上目前有非常多这方面的资料,但最好的方式还是直接跟着源码进行解读,每日一问系列一直追 ...

  10. python每日一练:0007题

    第 0007 题: 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来. # -*- coding:utf-8 -*- import os def count ...

随机推荐

  1. C#使用Redis实现网站统计访问数或点赞数功能!

    1.安装.net操作Redis需要的NuGet包: 这里推荐使用:StackExchange.Redis,在程序包管理器控制台输入命令install-package stackexchange.red ...

  2. 简单的sql语句汇总(sqlserver)

    1.修改字段的默认值 alter table 表名 add default 默认值 for 字段名称 例子: for Age; alter table 表名 add constraint DF_TAB ...

  3. because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checkin

    1 前言 浏览器报错误(chrome和firefox都会):because its MIME type ('text/html') is not a supported stylesheet MIME ...

  4. java--Date时间

    Date: 表示特定的瞬间,精确到毫秒,通过方法设定自己所表示的时间,可以表示任意的时间 System.currentTimeMillis() :返回的当前系统时间, 1970-1-1 至今的毫秒数 ...

  5. html书写行内元素时-tab和换行会在行内元素间引入间距

    目录 html文本中的控制字符会被解析为文本节点 书写行内元素时,换行符LF与水平制表符HT会引入莫名的元素间间隔 其他控制字符是否会引入间距的验证 html文本中的控制字符会被解析为文本节点 举例: ...

  6. 【Thinkphp】引入第三方类库常见问题

    TP3.2在添加第三方sdk的时候,文件放在ThinkPHP/Library/Org文件夹下可独立创建文件夹(官方文档有其他思路)需对文件做以下修改. 1.第一应该修改文件的名称(下载的sdk一般是 ...

  7. 01. MySQL8.0 MAC-OS-X安装

    目录 MySQL8.0 MAC-OS-X安装 8.0较与5.7变化 下载 安装 启动 登录查看数据库 安装后mysql文件分布 MySQL8.0 MAC-OS-X安装 换mac啦,搭建开发环境,安装m ...

  8. VUE的element-ui的使用

    我们在自己的网站当中有的时候会用到element-ui的组建 1.如何安装element-ui的组件 在命令行工具当中输入cnpm i element-ui -S, 等待安装 2.如何在vue当中使用 ...

  9. NLP学习(5)----attention/ self-attention/ seq2seq/ transformer

    目录: 1. 前提 2. attention (1)为什么使用attention (2)attention的定义以及四种相似度计算方式 (3)attention类型(scaled dot-produc ...

  10. 201871010110 - 李华 《面向对象程序设计(java)》第二周学习总结

    第一部分:理论知识学习部分 一.简单的Java程序应运程序 1.标识符0标识符由字母.下划线.美元符号和数字组成,且第一个符号不能为数字.   标识符可用作:类名.对象名.变量名.方法名.数组名.文件 ...