《python语言程序设计》2018版第8章第14题金融:信用卡号合法性 利用6.29题

news2024/9/21 1:54:30

请添加图片描述

一、之前6.29题我做的代码

这是用数字来进行分辨的

is_txt = 4383576018402626 #合法

def split_the_data_even(vis_n):
    current_a1 = vis_n // 10000
    a_t1 = vis_n % 10000
    # print("1th", a_t1)

    a_t2 = current_a1 % 10000
    # print("2th", a_t2)

    current_a3 = current_a1 // 10000
    a_t3 = current_a3 % 10000
    # print("3th", a_t3)

    a_t4 = current_a3 // 10000
    # print("4th", a_t4)

    even1 = a_t1 % 10
    even2 = a_t1 // 100 % 10

    even3 = a_t2 % 10
    even4 = a_t2 // 100 % 10

    even5 = a_t3 % 10
    even6 = a_t3 // 100 % 10

    even7 = a_t4 % 10
    even8 = a_t4 // 100 % 10

    return even1, even2, even3, even4, even5, even6, even7, even8


# 奇数
def split_the_data_odd(vis_n):
    current_a1 = vis_n // 10000
    a_t1 = vis_n % 10000
    # print("1th", a_t1)

    a_t2 = current_a1 % 10000
    # print("2th", a_t2)

    current_a3 = current_a1 // 10000
    a_t3 = current_a3 % 10000
    # print("3th", a_t3)

    a_t4 = current_a3 // 10000
    # print("4th", a_t4)

    odd1 = a_t1 // 10 % 10
    odd2 = a_t1 // 100 // 10
    #
    odd3 = a_t2 // 10 % 10
    odd4 = a_t2 // 100 // 10
    #
    odd5 = a_t3 // 10 % 10
    odd6 = a_t3 // 100 // 10
    #
    odd7 = a_t4 // 10 % 10
    odd8 = a_t4 // 100 // 10

    return odd1, odd2, odd3, odd4, odd5, odd6, odd7, odd8


def mult_num_odd(int_num, m_num):
    a = int_num * m_num
    if a >= 10:
        div_a1 = a // 10
        div_a2 = a % 10
        return div_a1 + div_a2
    elif a == 0:
        return a
    else:
        return a


def odd_add(visa_txt):
    a_text = split_the_data_odd(visa_txt)
    temp_text = 0
    for i in a_text:
        temp_text += mult_num_odd(i, 2)
    return temp_text


def even_add(visa_txt):
    even_text = split_the_data_even(visa_txt)
    temp_text = 0
    for i in even_text:
        temp_text += i
    return temp_text


def is_valid(visa_text):
    a = odd_add(visa_text) + even_add(visa_text)
    if a % 10 == 0:
        print(f"This visa code {visa_text} is valid!")
    else:
        print(f"This visa code {visa_text} is not valid!")
        print("Sorry! again input, or call worker!")
        print(a)


is_valid(vis_txt)

请添加图片描述
顺便说一句驼峰在win系统里还好使,到mac的python就一顿贬低的报错.

二、本题是用字符串来做,原谅我,我有暗自骂了作者

也就是说我将数字变成字符串.那么我就不能用整除、除于,只能用字符串和循环来完成

2024.09.06
我现在不明白这个大哥到底什么意思??
字符串不能加减乘除呀。字符串更不能进行什么换算。
我到底要验证什么呢
通过字符串验证什么呢

2024.9.9
应急局不知道哪天来抽查, 我还有19日到20日的全天培训,
真的和我此时的代码一样.
停了这么久,今天突然想开了.
将整数转成字符串,然后再识别会数字.但是用循环就比较 失败了.

def if_digit(num):
    if num == "0":
        return 0
    elif num == "1":
        return 1
    elif num == "2":
        return 2
    elif num == "3":
        return 3
    elif num == "4":
        return 4
    elif num == "5":
        return 5
    elif num == "6":
        return 6
    elif num == "7":
        return 7
    elif num == "8":
        return 8
    elif num == "8":
        return 8
    elif num == "9":
        return 9

def run_text(num_t,text_about):
    for i in range(0, num_t):
      return if_digit(text_about[i])

a = run_text(len_num,str_vis_text)
print(a)

这段代码只显示4.
我就不截图了
如果你只输出可以得到数列但是往往不能计算了

for i in range(0, num_t):
      return if_digit(text_about[i])

如果不用光用 循环可以显示整个数列,但是还不能当成一个完整的整数列,来用.
终于我忍不住换了使用python的保留名字之一的
isalnum()这哥们有点敌我不分
isdigit()还是它比较好


if str_vis_text.isdigit() is False:
    print("This str word is worry!")
else:
    text_to_integer = int(str_vis_text)
    is_valid(text_to_integer)

成功了.if代表 如果字符串里有字母.则返回真
else:代表如返回否,则开始将字符串变沉整数序列,然后放到直接做好的函数is_valid

请添加图片描述

请添加图片描述

请添加图片描述
请添加图片描述

两个结果,两种效果.明天顺利

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2125053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【自用23.】C++-const数据成员及const成员函数

const数据成员 const数据成员的初始化方式: 使用类内值(C11支持)使用构造函数的初始化列表 (如果同时使用这两种方式,以初始化列表中的值为最终初始化结果) 注意: 不能在构造函数或其他成员…

全新的训练算法:Reflection 70B进入大众的视野

在2024年9月6日,大模型的圈子迎来了一位新成员——Reflection 70B,它横扫了MMLU、MATH、IFEval、GSM8K等知名的模型基准测试,完美超越了GPT-4o,同时也超越了Claude3.5 Sonnet成为了新的大模型之王,Reflection 70B到底是…

Linux: network: esp:收到了重复的包

最近遇到一个问题,是说收到了dup的ESP包。 这个目前还是未解的谜题,不知道到底是谁发的重复包。 但是从wireshark里确实可以看到在相同SPI下,收到了两个序号相同的ESP包。 这个时候,就会触发防火墙的防御机制。下面是一个大模型给出的一个解答(主要介绍的是anti-replay的…

10款企业图纸加密软件大盘点|2024企业图纸加密软件推荐

在数字化时代,企业图纸数据的安全性显得尤为重要。图纸数据往往包含企业的核心技术、设计方案和知识产权,一旦泄露,将对企业造成不可估量的损失。因此,选择一款合适的图纸加密软件,成为企业保护核心资产的重要手段。以…

ComsolMatlab 互阻抗法计算多孔材料吸声(背腔无反射)

互阻抗法是一种用于计算多孔材料吸声性能的方法。它基于材料的声学参数来预测其吸声特性。互阻抗法的基本原理是考虑多孔材料中孔隙和固体相之间的相互作用,通过定义互阻抗来描述声波在材料中传播时的复杂情况。 在互阻抗法中,孔隙和固体相的声波反射和透…

第十五节:学习Springboot 的响应结果封装(自学Spring boot 3.x的第四天)

这节记录下如何使用枚举类和响应封装类实现响应结果封装。 第一步:新建立一个枚举类。枚举类的要求有两个变量,响应码code,响应信息desc。响应码需要跟前端约定好。 public enum ResponseCode {SUCCESS("success",101),ERROR(&qu…

2024年好用的10款图纸加密软件排行榜|图纸加密的最佳选择

随着企业对知识产权和数据安全需求的日益增加,图纸加密软件已经成为各行业保护敏感设计文档的关键工具。2024年,市场上涌现了多款优质的图纸加密软件,帮助企业有效防范数据泄露、维护信息安全。本文将为您介绍2024年好用的10款图纸加密软件&a…

入驻国际数字影像产业园有哪些优势?

在数字文创产业蓬勃发展的今天,选择入驻国际数字影像产业园,意味着您已踏上了一条通往行业前沿的快车道。这里,不仅是数字影像产业的聚集地,更是创新与梦想的孵化器。那么,入驻国际数字影像产业园究竟有哪些优势呢&…

vmware虚拟机 windows下查看进程id(pid)

在日常运维过程中, 发现宿主机cpu占用高, 经常要看是那一个虚拟机占用内存或cpu高. 但是在windows资源管理器中,所有的虚拟机都显示的是vmware-vmx.exe. 目前手动情况下就需要一个挨着一个去看. 有没有直接查看虚拟机进程id虚拟机运行目录的方法?? 实现步骤 1. 通过 vm…

【Python进阶】一篇文章教你如何使用PyCharm的调试功能?

要使用 PyCharm 的调试功能,可以按照以下步骤进行操作: 1、打开 PyCharm 启动 PyCharm,并打开你的 Python 项目。 2、设置断点 在你想要调试的代码行上,点击行号左侧的空白处,或者使用快捷键 Ctrl F8。这将在该行…

【C++ 高频面试题】指针和引用、关于内存泄漏和野指针问题

文章目录 1. 静态变量、全局变量、局部变量2. 指针和引用的区别3. 内存泄漏4. 野指针 1. 静态变量、全局变量、局部变量 ①局部变量: 作用范围:局部变量只在定义它的函数或代码块内有效,函数执行结束后,局部变量即失效。 生命周…

点亮第一盏LED灯,认识stm32最小系统板

嵌入式初学者,直接上手stm32开发,首先就是买块stm32开发板,选择最基础的系列,F103C8t6,先不管里面的数字代表什么意思,先弄明白F103代表什么意思,F103表示F1系列里的03子系列,OK&…

Http中get与post的区别,99%的人都理解错了吧

Get和Post是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是Get把参数包含在URL中,Post通过request body传递参数。 你可能自己写过无数个Get和Post请求,或者已经看过很多权威网站总结…

ICMAN触摸感应芯片方案

ICMAN触摸感应芯片 ICMAN触摸感应芯片采用先进的电容感应技术,能够精确检测和识别触摸动作。这一技术通过感应人体与传感器之间的微小电容变化来实现触控功能。相比传统的电阻式触控技术,电容感应技术具有更高的灵敏度和响应速度,能够提供更…

智能交通(四)——CMC特刊推荐

特刊征稿 01 期刊名称: Advanced Trends in Vehicular Ad hoc Networks (VANETs) 截止时间: 提交截止日期:2025年5月31日 目标及范围: 涵盖但不限于以下关键领域的提交: - 下一代 V2X 通信: 本主题探讨了如何将…

预防式编程——避免空值

文章目录 1. 输入验证2. 使用可选类型(Optional Types)3. 非空断言4. 安全调用运算符5. 提供默认值6. 设计模式7. 文档说明8. 数据结构的选择9. 逻辑判断10. 构造函数和初始化11. 使用工具类12. 枚举类型13. 编码规范14. 测试15. 重构16. 教育与培训 案例…

【js】将串口数据翻译为字符串-含源码

一、背景 通过串口工具获取到的以十六进制表示的字符串数据,按照ascii码转换为字符串。 二、分析 输入应为十六进制的以单个字节为单位的字节与字节之间以空格间隔的字符串。 输出应为完整连续的字符串。 三、实现 3.1按照空格拆解输入字符串为字符数组 var i…

vscode 高效率开发手册

vscode 高效率开发手册 2023.11.17 colin v1.0 文章目录 vscode 高效率开发手册一、统一代码风格二、自定义代码片段三、熟记`vscode`快捷键四、一些有用的系统设置1、焦点变更自动保存2、删除文件中的每行末尾的空格五、一些有用的、高效率插件安装方式:1、自行联网安装;2、…

原生 input 中的 “type=file“ 上传文件

目标&#xff1a;实现文件上传功能 原型图&#xff1a; HTML部分&#xff1a; <div class"invoice-item"><div class"invoice-title">增值税专用发票</div><div class"invoice-box"><el-form-item label"标准…

信息化和精益化应当先做哪个?天行健王春城老师回答你

随着科技的飞速发展&#xff0c;企业面临着来自内部和外部的双重压力。在这样的背景下&#xff0c;信息化和精益化成为了企业提升竞争力的两个重要方向。那么&#xff0c;面对这两个重要的战略方向&#xff0c;企业应该先从哪里入手呢&#xff1f;下面天行健王春城老师就此展开…