第二章 数字类型及其操作3
本章围绕 Python 字符串字符类型操作展开学习分为教学案例与配套实验两大模块。案例以身份证信息解析、字符图形打印、字符统计、凯撒加密为主练习字符串切片、遍历、判断、拼接基础操作实验拓展回文判断、多种加密解密、信用卡 / ISBN 编号校验、数字日期汉字互转、格式化输出、字符绘图等综合场景。习题融合身份信息处理、密码加密、编码校验、格式转换、图案打印等实用场景全面掌握切片、循环遍历、字符判断、替换、格式化、加密算法等字符串核心操作。教学案例三 字符类型及其操作I提取身份证号性别通过身份证的第17位也就是倒数第二位的数字可以辨别该身份证所属人的性别,奇数为男性,偶数为女性。输入身份证号第17位若是偶数输出性别女否则输出性别男sfzhinput(输入身份证号) #代码开始 sexsfzh[:17] sexint(sex) if sex%20: print(性别女) else: print(性别男) #代码结束II提取身份证号生肖sfzhinput(输入身份证号) #代码开始 sxzf猴鸡狗猪鼠牛虎兔龙蛇马羊 nfsfzh[6:10] shuxiangsxzf[int(nf)%12] print(生肖shuxiang) #代码结束III打印三角形hseval(input(请输入行数)) #代码开始 for i in range(hs): print( *(hs-1-i)*(2*i1)) #代码结束IV打印钻石图形hseval(input(请输入行数)) #代码开始 for i in range(hs): print( *(hs-i-1)*(2*i1)) for i in range(hs-2,-1,-1): print( *(hs-i-1)*(2*i1)) #代码结束V身份证合法性检查sfzhinput(输入身份证号) #代码开始 sfzhsfzh.strip() if len(sfzh)!18: print(长度错误) else: if not sfzh[:17].isnumeric(): print(不是数字) #代码结束VI身份证号校验码sfzhinput(输入身份证号) #代码开始 xs 79a584216379a5842 s 0 for i in range(17): if xs[i]! a: sseval(xs[i])*eval(sfzh[i]) else: ss10*eval(sfzh[i]) jym10X98765432 if jym[s%11]! sfzh[17]: print(校验码错误) else: print(合法卡号) #代码结束VII统计字符串中的各类字符x input(请输入字符串) #代码开始 sz0 dxzm0 xxzm0 qt0 hz0 for c in x: if c.isdigit(): szsz1 elif c.isupper(): dxzmdxzm1 elif c.islower(): xxzmxxzm1 elif \u4e00 c and c \u9fff: hzhz1 else: qtqt1 print(大写字母{}小写字母{}汉字{}数字{}其他{}.format(dxzm,xxzm,hz,sz,qt)) #代码结束VIII凯撒密码加密x input(输入明文:) #代码开始 y for c in x: if acz: yychr(ord(a)(ord(c)-ord(a)3)%26) else: yyc print(密文为:y) #代码结束实验三 字符类型及其操作新I判断回文数输入一个整数判断其是否回文数。回文数是指该数翻转后也等于该数本身。例如12321就是回文数12345不是回文数。xinput(请输入一个数字) #代码开始 if x.isdigit(): if x x[::-1]: print(f{x}是回文数) else: print(f{x}不是回文数) else: print(不是数字) #代码结束II凯撒密码解密mw input() #代码开始 ming for i in mw: if i.isupper(): ming ming chr((ord(i)-65-3)%2665) elif i.islower(): ming ming chr((ord(i)-97-3)%2697) else: ming ming i #代码结束 print(ming)III简单密码加密某用户在存储自己的密码时密码由大小写英文字母和数字组成为了不被别人知晓将其按下列规则加密数字字符0用9替换1用8替换2用7替换3用6替换4用5替换5用4替换6用3替换7用2替换8用1替换英文字母a用z替换b用y替换c用x替换d用w替换e用v替换f用u替换g用n替换,以此类推英文字母A用Z替换B用Y替换C用X替换D用W替换E用V替换F用U替换G用N替换,以此类推编写程序输入用户的密码输出其加密后的密码例如输入0012xyzM输出9987cbaNpinput() y #代码开始 for i in p: if i.isdigit(): yystr(9-int(i)) elif i.islower(): ichr(25-(ord(i)-97)97) yi elif i.isupper(): ichr(25-(ord(i)-65)65) yi #代码结束 print(y)IV信用卡号校验编写一个能判断信用卡号是否合法的小程序。信用卡号必须通过lun算法进行校验其过程1、从卡号最后一位数字开始逆向将奇数位(1、3、5等等)相加。2、从卡号倒数第二位数字开始逆向将偶数位数字先乘以2如果乘积为两位数则将其减去9再求和。3、将奇数位总和加上偶数位总和结果应该可以被10整除。例如卡号是5432123456788881逆向奇数位为 4 2 2 4 6 8 8 1 和 35逆向偶数位乘以2有些要减去9的结果1 6 2 6 1 5 7 7求和 35。最后 35 35 70 可以被10整除认定校验通过。注意信用卡的卡号长度是根据输入来确定的。提示字符串[结尾字符:开始字符:负整数]可以逆序间隔地取字符例如 xhello world则x[-1::-2]表示从结尾字符每隔2个字符取子串即drwolhcardidinput(请输入信用卡号) #代码开始 sjso0 for i in cardid[-1::-2]: sjint(i) for i in cardid[-2::-2]: if int(i)*210: soint(i)*2 else: soint(i)*2-9 if(sjso)%100: print(合法卡号) else: print(非法卡号) #代码结束VISBN 校验国际标准书号(ISBN)用10位数字唯一标识的一本书。最后一位数字为校验位可以由其他9位数字计算出来且d12d23d3……10d10必须是11的倍数di的下标表示从右边起第i个数。校验位必须是介于0到10中的一个数字用字母X表示10.例如020131452的校验和是510*09*28*07*16*35*14*43*52*21*5为88是11的倍数编写一个python程序将9位整数作为输入计算校验和并打印isbn号例如输入020131452输出0201314525xinput() #代码开始 a10 b0 for i in x: bint(i)*a a-1 bb%11 b11-b if b10: bX else: bstr(b) print(xb) #代码结束VI打印田字格#打印田字格 xeval(input()) #代码开始 for i in range(2*x-1): if i0 or ix-1 or i2*x-2: print(* *(2*x-1)) else: print(* *(2*x-4)* *(2*x-4)* ) #代码结束VII数字汉字转换不管是阿拉伯数字(1、2、3……), 还是所谓汉字小写数码(一、二、三……), 由于笔画简单,容易被涂改伪篡。所以一般文书和商业财务票据上的数字都要采用汉字数码大写: 壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、“万、亿”本身笔画已经比较复杂,使用机会也少,没有必要再用别的字代替。如“ 3564 元”写作“叁仟伍佰陆拾肆元”xinput() hz零壹贰叁肆伍陆柒捌玖 dw拾佰仟万拾佰仟 y #代码开始 ilen(x) for c in x[:-1]: if c!0or(c0and x[-i1]!0and i!5 and i!9): yhz[int(c)] if c!0 or(c0and((i5and y[-1]!亿and y[-1]!兆)or(i9and y[-1]!兆))): ydw[i-2] i-1 if x[-1]!0: yyhz[int(x[-1])] y元 #代码结束 print(y)VIII日期汉字格式转换编写程序用户输入阿拉伯数字的日期转换为汉字的日期。例如输入2021/2/25,输出二零二一年二月二十五日xinput() hz零一二三四五六七八九 #代码开始 zwnf zwyf zwrh for i in x[:4]: zwnfhz[int(i)] if x[6]!/: if x[6]0: zwyf十 else: zwyf十hz[int(x[6])] else: zwyfhz[int(x[5])] if x[-2]!/: if x[-2]1: if x[-1]!0: zwrh十hz[int(x[-1])] else: zwrh十 else: if x[-1]!0: zwrh二十hz[int(x[-1])] else: zwrh二十 else: zwrhhz[int(x[-1])] #代码结束 print(zwnf年zwyf月zwrh日)IX输出格式化字符gleval(input(请输入武力)) sdeval(input(请输入速度)) zleval(input(请输入智力)) tzleval(input(请输入统治)) #代码开始 print(武力是 {:4}.format(gl)**(gl//10)) print(速度是 {:4}.format(sd)**(sd//10)) print(智力是 {:4}.format(zl)**(zl//10)) print(统治是 {:4}.format(tzl)**(tzl//10)) #代码结束

相关新闻

当AI Agent开始写AI Agent:自进化系统在企业管理中的伦理与安全红线

当AI Agent开始写AI Agent:自进化系统在企业管理中的伦理与安全红线

做企业Agent落地走到深水区,都会碰到同一个分水岭:从「人写Agent工具」到「Agent自己生成工具、甚至生成新的Agent」。运维Agent写个脚本自动排查故障、客服Agent封装一个专项问题处理工具、数据分析Agent自己生成取数逻辑,这些场景早已不是科…

2026/6/23 22:42:06阅读更多 →
2026 AI 开发者生存指南(5):AI Agent 框架对比——LangChain、LangGraph、CrewAI、Dify 怎么选?

2026 AI 开发者生存指南(5):AI Agent 框架对比——LangChain、LangGraph、CrewAI、Dify 怎么选?

AI Agent 框架对比:LangChain、LangGraph、CrewAI、Dify 怎么选? 2026 年是 Agent 全面落地的一年。全球已有超过 4.2 万家企业部署了生产级 Agent。框架也从"有没有得用"变成了"哪个更适合我的场景"。 这篇文章把主流框架放在一起…

2026/6/23 22:42:06阅读更多 →
FreqFlow:基于频率感知的流匹配模型提升图像生成细节质量

FreqFlow:基于频率感知的流匹配模型提升图像生成细节质量

1. 项目概述:为什么我们需要关注生成图像的“频率”? 最近在图像生成领域,一个名为“FreqFlow”的模型引起了我的注意。它的核心思路非常直接:通过让模型“看见”并理解图像的频率信息,来提升生成结果的质量。这听起来…

2026/6/23 22:37:05阅读更多 →
Django计算机毕设之基于 Web 架构的 AES 文件夹加密防护系统的设计与实现 基于 Django 的文件加密解密安全防护系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

Django计算机毕设之基于 Web 架构的 AES 文件夹加密防护系统的设计与实现 基于 Django 的文件加密解密安全防护系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/24 1:12:45阅读更多 →
Python的__new__资源管理

Python的__new__资源管理

Python的__new__方法作为对象创建的底层机制,在资源管理中扮演着关键角色。它不仅是实例化过程的第一道关卡,更直接控制内存分配和对象初始化,为开发者提供了精细化管理资源的可能。理解__new__的运作原理,能够帮助开发者优化性能…

2026/6/24 1:07:45阅读更多 →
新手做漫剧用什么,全流程AI创作工具功能实测分享

新手做漫剧用什么,全流程AI创作工具功能实测分享

不少刚接触AI漫剧创作的人常会遇到两类卡点:单人创作时脚本、分镜、生图、视频素材分散在不同软件,来回复制粘贴素材、切换窗口打断创作思路;小型工作室多人协作没有统一空间存放剧本、角色参考、成片工程,每次重启项目都要重新整…

2026/6/24 1:07:45阅读更多 →
为什么我不再推荐使用Swagger UI?

为什么我不再推荐使用Swagger UI?

为什么我不再推荐使用Swagger UI? 在API开发领域,Swagger UI曾是文档工具的标杆,凭借直观的交互界面和自动生成文档的能力风靡一时。然而随着技术演进和开发需求的变化,它的局限性逐渐暴露。本文将结合实践经验,从多个…

2026/6/24 1:07:45阅读更多 →
Python 协程池实现方法

Python 协程池实现方法

Python协程池实现方法详解 在异步编程领域,Python的协程池(Coroutine Pool)是一种高效管理并发任务的技术。它通过复用协程对象减少资源开销,适用于高并发的网络请求、IO密集型任务等场景。本文将从实现原理、核心组件、性能优化…

2026/6/24 1:07:45阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/23 7:04:52阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/23 1:55:32阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/23 5:55:37阅读更多 →
TaskJuggler脚本编程入门:用代码实现自动化项目管理

TaskJuggler脚本编程入门:用代码实现自动化项目管理

TaskJuggler脚本编程入门:用代码实现自动化项目管理 【免费下载链接】TaskJuggler TaskJuggler - Project Management beyond Gantt chart drawing 项目地址: https://gitcode.com/gh_mirrors/ta/TaskJuggler TaskJuggler是一款强大的开源项目管理工具&#…

2026/6/24 0:02:41阅读更多 →
终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果

终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果

终极教程:使用angular-mobile-nav实现流畅的移动页面过渡效果 【免费下载链接】angular-mobile-nav An angular navigation service for mobile applications 项目地址: https://gitcode.com/gh_mirrors/an/angular-mobile-nav angular-mobile-nav是一款专为…

2026/6/24 0:02:41阅读更多 →
Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作

Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作

Wan2.1-Fun-V1.1-1.3B-InP Web UI使用教程:无需代码的AI视频创作 【免费下载链接】Wan2.1-Fun-V1.1-1.3B-InP 项目地址: https://ai.gitcode.com/hf_mirrors/PAI/Wan2.1-Fun-V1.1-1.3B-InP Wan2.1-Fun-V1.1-1.3B-InP是一款强大的AI视频创作工具,…

2026/6/24 0:02:41阅读更多 →