Python程序设计 字符类型及其操作

1. 提取身份证号性别

通过身份证的第17位也就是倒数第二位的数字可以辨别该身份证所属人的性别,奇数为男性,偶数为女性。 输入身份证号,第17位若是偶数,输出性别女,否则输出性别男

1.通过input()函数接收用户输入的身份证号,将其保存在变量sfzh中。

2.sfzh第17位sfz[16]若是偶数,设置性别xb为女,否则设置性别xb为男

3.输出性别

sfzh=input("输入身份证号")
#代码开始
if int(sfzh[-2]) % 2 == 0:print("性别女")
else:print("性别男")#代码结束

2. 提取身份证号生肖

身份证的第六位到第九位是出生的年份。

,

出生年份除以12的余数,如果余数为0,则相应的属相是猴。 余数为1,则相应的属相是鸡。 出生年份对12的余数与属相的对应关系,如图所示。

,

输入身份证号,根据年份计算其生肖。

1.通过input()函数接收用户输入的身份证号,将其保存在变量sfzh

2.设置年份nf是sfzh第6位到第9位sfz[6:9]

3.设置字符串sxzf=“猴鸡狗猪鼠牛虎兔龙蛇马羊”,出生年份对12的余数是eval(nf)%12,sxzf[eval(nf)%12]]就是属相。

sfzh=input("输入身份证号")
#代码开始
s = sfzh[6:10]
sxzf="猴鸡狗猪鼠牛虎兔龙蛇马羊"
n = int(s) % 12
print("生肖%s" % sxzf[n])#代码结束

3. 打印三角形

编写程序,输入整数,输出加号组成的整数边长的等腰直角三角形

,

方案一:

1.输入行数hs

2.i从0循环到hs-1,每行打印hs-1-i个空格和2i+1个+号

,

hs=eval(input("请输入行数"))
#代码开始
for i in range(hs):print(" "*(hs-1-i) + "+" *(2*i+1))#代码结束

方案二: 

hs=eval(input("请输入行数"))
#代码开始for i in range(0, hs):for j in range(1, hs-i):print(" ",end="")for n in range(hs-i+1,hs+1):print("+",end="")for x in range(hs-i-1,hs):print("+",end="")print()
#代码结束

4. 打印钻石图形

编写程序,输入整数,输出加号组成的整数边长的钻石图形

,

方案一:

输入:行数

处理: i从0循环到行数减一 每次输出行数减一减i个空格和2*i+1个加号 i从行数减二循环到0 每次输出行数减一减i个空格和2*i+1个加号

,

hs=eval(input("请输入行数"))
#代码开始  
for i in range(0, hs):print(" "*(hs-1-i) + "+"*(i*2+1))
for i in range(hs-2, -1, -1):print(" "*(hs-1-i) + "+"*(i*2+1))  #代码结束

 方案二:

hs=eval(input("请输入行数"))
#代码开始    
for i in range(0, hs):for a in range(1,hs-i):print(" ",end="")for b in range(hs-i+1,hs+1):print("+",end="")for c in range(hs-i-1,hs):print("+",end="")print()for j in range(hs,1,-1):for a in range(0, hs-j+1):print(" ",end="")for b in range(0, j-1):print("+",end="")for c in range(0,j-2):print("+",end="")print()#代码结束

5. 身份证合法性检查

输入身份证号,去除空格后,判断其长度是否18位,前17位是否数字。若不符合条件,显示对应提示

,

sfzh=input("输入身份证号")
#代码开始
sfzh = sfzh.strip()
if len(sfzh) == 18:if sfzh[:17].isnumeric():print("")else:print("不是数字")else:print("长度错误")
#代码结束

6. 身份证号校验码

编写一个能判断身份证号校验码是否正确的小程序。

,

身份证的校验码的计算规则: 1.将身份证号码前面的17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2 ; 2、将相乘的结果累加; 3、用累加的和除以11,得到余数; 4、余数0到10对应的校验码为1、0、X、9、8、7、6、5、4、3、2。

,

1.输入身份证号sfzh

2.设置xs为17位系数所对应的字符串'79a584216379a5842', 10用'a'表示

3.i从0循环到16,xs[i]对应的数值(若xs[i]为'a'则为10)乘以sfzh[i]对应的数值,累加求和为s

4.设置jym为各位余数对应的校验码的字符串'10X98765432’

5.根据s对11的余数对jym切片,若不等于第18位sfzh,显示校验码错误。 

sfzh=input("输入身份证号")
#代码开始
xs = "79a584216379a5842" 
s = 0
i = 1
if len(sfzh) == 18:for i in range(17):if xs[i] != "a":s += eval(sfzh[i]) * eval(xs[i])else:s += eval(sfzh[i]) * 10jym = "10X98765432"if jym[s%11] != sfzh[17]:print("校验码错误")
#代码结束

7. 统计字符串中的各类字符

 输入字符串,统计其中的大写字母、小写字母、汉字、数字字符和其他字符的个数。

,

输入:字符串 处理: 设置变量sz、xxzm、dxzm、hz、qt为0,分别记录数字、小写、大写、汉字、其他字符的个数 对字符串的每个字符循环,若符合相应的条件则相应的变量加一,均不符合则qt加一。 输出:各变量的值

判断字符是大小写字母与汉字等

,

字符串.isdigit()会判断字符串是否阿拉伯数字字符

字符串.isnumeric()会判断字符串是否是数字字符,包含汉字的数字也会返回真值

该案例中对数字的定义是阿拉伯数字 也可以通过字符的大小判定 例如"Z">=ch>="A"可以判断ch是否大写字母 "z">=ch>="a"可以判断ch是否大写字母

x=input("请输入字符串")
#代码开始
sz = 0
xxzm = 0
dxzm = 0
hz = 0
qt = 0
for i in x:if "A" <= i <= "Z":dxzm += 1elif "a" <= i <= "z":xxzm += 1elif "\u4e00" <= i <= "\u9fff":hz += 1elif "0" <= i <= "9":sz += 1else:qt += 1print("大写字母%s小写字母%s汉字%s数字%s其他%s" % (dxzm, xxzm, hz, sz, qt))#代码结束

8. 凯撒密码加密

编写一个对输入的字符串进行凯撒密码加密的程序

凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下: 原文:abcdefghijklmnopqrstuvwxyz 密文:defghijklmnopqrstuvwxyzabc

每个字符在计算机中可以表示为一个数字,称为编码。 字符串则以编码序列方式存储在计算机中。 目前,计算机采用的重要编码是ASCII编码。 asc码表如图所示

字符a的编码是97,字符b的编码是98,其余字母以此类推 ord(字符)函数可以返回字符的编码 chr(码值)函数可以返回编码对应的字符 例如,chr(97)是'a' ord('d')是100

x = input("输入明文:")
#代码开始
y = ""
for i in x:if "a" <= i <= "z":s = chr((ord(i)-ord("a") + 3) % 26 + ord("a"))else:s = iy += s
print("密文为:%s" % y)#代码结束

9. 选择题

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

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

相关文章

npm发布包至私有仓库

前提&#xff1a;使用verdaccio在服务器搭建好了私有仓库 1、登录至私服 npm adduser --registryhttp://xxx.xxx.x.xx:48732、发布npm包到私有仓库 修改package.json中的相关信息后 #cd 项目目录 npm publish --registryhttp://xxx.xxx.x.xx:4873登录至私服查看 3、在项目中…

性能分析-CPU知识

目录 CPU知识 cpu组成 查看cpu信息&#xff1a; top命令中 cpu相关&#xff1a; top命令看到系统负载&#xff1a; CPU负载 IO负载 上下文&#xff1a; CPU的寄存器和程序计数器----在cpu的控制器中 实战演示分析 top命令分析 arthas工具 进程上下文切换高的问题分析…

《MATLAB科研绘图与学术图表绘制从入门到精通》

解锁MATLAB科研绘图魅力&#xff0c;让数据可视化成为你的科研利器&#xff01; 1.零基础快速入门&#xff1a;软件操作实战案例图文、代码结合讲解&#xff0c;从入门到精通快速高效。 2.多种科研绘图方法&#xff1a;科研绘图基础变量图形极坐标图形3D图形地理信息可视化等&a…

pdf操作器(图片转文字、PDF转word、PDF拆分、图片jpg、png互转)

pdf操作器&#xff08;不用联网图片转文字、PDF转word、PDF拆分、图片jpg、png互转&#xff09;介绍目前该软件实现了以下功能 pdf转wordpdf拆分图片&#xff0c;图片导出在桌面的一个文件夹里图片合并为pdf压缩、转换图片格式&#xff08;jpg和png&#xff09;OCR图片转文字&…

【计算机网络经典面试题】简述 TCP 三次握手和四次挥手的过程

TCP链接 1.三次挥手2.四次挥手3.拓展说说 TCP 2次握手行不行&#xff1f;为什么要3次 1.三次挥手 1&#xff09;第一次握手&#xff1a;建立连接时&#xff0c;客户端向服务器发送SYN包&#xff08;seqx&#xff09;&#xff0c;请求建立连接&#xff0c;等待确认 2&#xff09…

C++中的vector与C语言中的数组的区别

C中的vector和C语言中的数组在很多方面都有所不同&#xff0c;以下是它们之间的一些主要区别&#xff1a; 大小可变性&#xff1a; vector是C标准模板库&#xff08;STL&#xff09;提供的动态数组容器&#xff0c;它的大小可以动态增长或减少。这意味着你可以在运行时添加或删…

【AIGC】HF-Mirror 使用说明(MacOS 版)

今天这篇文章主要是记录 HF-Mirror 的使用过程&#xff0c;官网上提供了 Linux 和 Windows 的使用方式。本人作为 MacOS 用户也将自己的使用办法记录一下&#xff0c;希望能够帮助到其他人。 HF-Mirror 是什么&#xff1f; HF-Mirror 是大神 padeoe 开源的 huggingface 镜像站…

CVE-2023-2928 DedeCMS 文件包含漏洞getshell 漏洞分析

DedeCMS&#xff08;也称为织梦CMS&#xff09;是一款基于PHPMySQL的开源内容管理系统。 在 DedeCMS 5.7.106 及之前的版本中发现一个漏洞。它已被宣布为关键。受此漏洞影响的是未知功能的文件uploads/dede/article_allowurl_edit.php。对参数 allurls 的操作会导致代码注入。…

解决前端性能瓶颈:高效处理大量数据渲染与复杂交互的策略与优化方法

✨✨祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 一、分页加载数据 二、虚拟滚动 三、懒加载 四、数据缓存 五、减少重绘和回流 …

基本乐理(识别和构成和弦一)阅读记录一

和弦、 和弦是非常好听的&#xff0c;顾名思义。我现在阅读的书籍是《基本乐理》- 作者李重光&#xff0c;直接跳跃到第十九章进行阅读。 理解和弦 书中介绍对理解和弦的前提要素是要对音程要掌握。 如&#xff1a;大三度 如&#xff1a;小三度 如&#xff1a;纯五度 音程 音…

如何使用Java和RabbitMQ实现延迟队列?

前言 今天我们使用Java和RabbitMQ实现消息队列的延迟功能。 前期准备&#xff0c;需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和RabbitMQ实现消息队列&#xff1f;-CSDN博客 今天讲的是依赖RabbitMQ的延迟插件实现…

Python---Numpy线性代数

1.数组和矩阵操作&#xff1a; 创建数组和矩阵&#xff1a;np.array, np.matrix 基本的数组操作&#xff1a;形状修改、大小调整、转置等 import numpy as np# 创建一个 2x3 的数组 A np.array([[1, 2, 3], [4, 5, 6]]) print("数组 A:\n", A)# 将数组 A 转换为矩阵…

SpringBoot项目打包和部署

目录 1.插件 2.打包 3.运行 1.插件 此插件会在pom中自动添加 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></bu…

【软考】23种设计模式详解,记忆方式,并举例说明

23种设计模式详解&#xff0c;举例说明 一、创建型模式1.1、抽象工厂模式&#xff08;Abstract Factory&#xff09;1.1.1、简介1.1.2、意图与应用场景1.1.3、结构1.1.4、优缺点1.1.4、示例代码&#xff08;简化版&#xff09; 1.2、建造者模式&#xff08;Builder&#xff09;…

c++的学习之路:16、string(3)

上章有一些东西当时没学到&#xff0c;这里学到了将在补充&#xff0c;文章末附上代码&#xff0c;思维导图。 目录 一、赋值重载 二、带模板的创建 三、析构函数 四、代码 五、思维导图 一、赋值重载 这里的赋值重载就是直接利用交换函数进行把传参生成的临时数据和需要…

【iOS】UITableView性能优化

文章目录 前言一、优化的本质二、卡顿产生原因三、CPU层面优化1.使用轻量级对象2.cellForRowAtIndexPath方法中不要做耗时操作3.UITableView的复用机制4.提前计算好布局了解tableView代理方法执行顺序cell高度计算rowHeightestimatedRowHeight 高度计算进行时机rowHeight计算时…

基于Spring boot+Vue的业余排球俱乐部会员管理系统

5 系统功能模块的具体实现 5.1超级会员角色 5.1.1 登录 超级管理员登录通过用户名和密码去数据库查询用户表&#xff0c;该名称是否在用户表中存在&#xff0c;如果存在&#xff0c;则通过用户名和密码查询密码是否正确&#xff0c;然后吧用户的信息存在jwt的负载里&#xf…

【CicadaPlayer】demuxer_service的简单理解

G:\CDN\all_players\CicadaPlayer-github-0.44\mediaPlayer\SMPMessageControllerListener.cppplayer的demuxer服务类 std::unique_ptr<demuxer_service> mDemuxerService{nullptr};根据option (Cicada::options),可以决定音视频的不同操作,通过 hander可以获得具体使…

探究“大模型+机器人”的现状和未来

基础模型(Foundation Models)是近年来人工智能领域的重要突破&#xff0c;在自然语言处理和计算机视觉等领域取得了显著成果。将基础模型引入机器人学&#xff0c;有望从感知、决策和控制等方面提升机器人系统的性能&#xff0c;推动机器人学的发展。由斯坦福大学、普林斯顿大学…

Redis中的Sentinel(六)

Sentinel 选举领头Sentinel. 当一个主服务器被判断为客观下线时&#xff0c;监视这个下线主服务器的各个Sentinel会进行协商&#xff0c;选举出一个领头Sentinel,并由领头 Sentinel对下线主服务器执行故障转移操作。以下是Redis选举领头Sentinel的规则和方法: 1.所有在线的S…