当前位置: 首页 > news >正文

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

请添加图片描述

一、之前6.29题我做的代码

这是用数字来进行分辨的

is_txt = 4383576018402626 #合法def split_the_data_even(vis_n):current_a1 = vis_n // 10000a_t1 = vis_n % 10000# print("1th", a_t1)a_t2 = current_a1 % 10000# print("2th", a_t2)current_a3 = current_a1 // 10000a_t3 = current_a3 % 10000# print("3th", a_t3)a_t4 = current_a3 // 10000# print("4th", a_t4)even1 = a_t1 % 10even2 = a_t1 // 100 % 10even3 = a_t2 % 10even4 = a_t2 // 100 % 10even5 = a_t3 % 10even6 = a_t3 // 100 % 10even7 = a_t4 % 10even8 = a_t4 // 100 % 10return even1, even2, even3, even4, even5, even6, even7, even8# 奇数
def split_the_data_odd(vis_n):current_a1 = vis_n // 10000a_t1 = vis_n % 10000# print("1th", a_t1)a_t2 = current_a1 % 10000# print("2th", a_t2)current_a3 = current_a1 // 10000a_t3 = current_a3 % 10000# print("3th", a_t3)a_t4 = current_a3 // 10000# print("4th", a_t4)odd1 = a_t1 // 10 % 10odd2 = a_t1 // 100 // 10#odd3 = a_t2 // 10 % 10odd4 = a_t2 // 100 // 10#odd5 = a_t3 // 10 % 10odd6 = a_t3 // 100 // 10#odd7 = a_t4 // 10 % 10odd8 = a_t4 // 100 // 10return odd1, odd2, odd3, odd4, odd5, odd6, odd7, odd8def mult_num_odd(int_num, m_num):a = int_num * m_numif a >= 10:div_a1 = a // 10div_a2 = a % 10return div_a1 + div_a2elif a == 0:return aelse:return adef odd_add(visa_txt):a_text = split_the_data_odd(visa_txt)temp_text = 0for i in a_text:temp_text += mult_num_odd(i, 2)return temp_textdef even_add(visa_txt):even_text = split_the_data_even(visa_txt)temp_text = 0for i in even_text:temp_text += ireturn temp_textdef 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 0elif num == "1":return 1elif num == "2":return 2elif num == "3":return 3elif num == "4":return 4elif num == "5":return 5elif num == "6":return 6elif num == "7":return 7elif num == "8":return 8elif num == "8":return 8elif num == "9":return 9def 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.lryc.cn/news/435556.html

相关文章:

  • QT 基础学习
  • 【Gephi】可视化教程
  • 演化式原型开发-系统架构师(六十五)
  • 初识爬虫4
  • Golang | Leetcode Golang题解之第387题字符串中的第一个唯一字符
  • 【CanMV K230 AI视觉】 人体检测
  • 解决浏览器自动将http网址转https
  • linux邮件配置
  • 基于springboot+vue乒乓球预约管理系统
  • Linux 基础命令-文件权限与所有权
  • 气压测试实验(用IIC)
  • C++ lambda闭包消除类成员变量
  • 等待唤醒机制和阻塞队列
  • IO多路复用是如何处理多个客户端同时访问一个数据的
  • QT中使用UTF-8编码
  • 我对 monorepo 的一些思考
  • Java学习Day41:骑龙救!(springMVC)
  • Redis 常用命令总结
  • Mysql SqlServer 分页
  • 电子支付原理
  • 什么是OAuth 2.0?OAuth 2.0的工作流程是什么?与OAuth 1.0有哪些区别?
  • Unity+LeapMotion2的使用
  • 【CanMV K230 AI视觉】 跌倒检测
  • 谈谈PCIe VID、DID、SSID、SSVID背后的智慧
  • 9月11日
  • 昇腾310内存拷贝测试
  • ‘$store‘ is not defined.
  • 如何利用Linux提升工作效率和安全性?
  • 初始Linux 和 各种常见指令
  • 【稀疏矩阵】使用torch.sparse模块