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,一经查实,立即删除!

相关文章

使用 Selenium 和 OpenCV 识别验证码(使用 Java)

验证码的自动识别对于爬虫来说是一个常见的挑战。在这篇文章中&#xff0c;我们将展示如何使用 Selenium 和 OpenCV&#xff0c;结合 Java&#xff0c;来自动化识别网站上的验证码。 配置 Maven 依赖 首先&#xff0c;我们需要在 Maven 项目中添加 Selenium 和 OpenCV 的依赖。…

代码随想录 day25

文章目录 回溯216.组合总和 |||思路代码 17.电话号码的字母组合思路代码 回溯 216.组合总和 ||| 216.组合总和 ||| 思路 和组合相同,稍微改变了恢复现场和判断结束的方法 代码 class Solution { private:vector<vector<int>> ans;vector<int> temp;int…

MySQL EXISTS 语句和IN语句有啥区别

在 MySQL 中&#xff0c;EXISTS 和 IN 是用于子查询的两种不同方式&#xff0c;它们有一些区别&#xff1a; 1. **IN 语句**&#xff1a; - IN 子句用于在 WHERE 子句中指定多个值&#xff0c;并检查主查询中的某个列是否在子查询返回的结果集中。 - IN 子句适用于子查询…

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…

redis和ElasticSearch和MongoDB应用场景,如何选择

Redis、Elasticsearch和MongoDB是三种不同类型的数据库&#xff0c;它们有各自的应用场景和特点。在选择时&#xff0c;需要考虑以下几个方面&#xff1a; 数据读写模式&#xff1a;Redis是基于内存的键值存储数据库&#xff0c;适用于高速读写场景&#xff0c;如缓存、计数器等…

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…

LeetCode 670. 最大交换

相关思路 把num放到字符数组中&#xff0c;遍历所有交换两个数字的num&#xff0c;并且取出最大值。 相关代码 class Solution {public int maximumSwap(int num) {String s ""num;char a[] s.toCharArray();int maxnum;for(int i0;i<s.length();i){for(int …

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; 目录 引言 一、分页加载数据 二、虚拟滚动 三、懒加载 四、数据缓存 五、减少重绘和回流 …

第十四届蓝桥杯c++组B组做题笔记

A题&#xff1a;日期统计&#xff1a; 【问题描述】 小蓝现在有一个长度为 100 的数组&#xff0c;数组中的每个元素的值都在 0 到 9 的范围之内。数组中的元素从左至右如下所示&#xff1a; 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 …

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

和弦、 和弦是非常好听的&#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…

HTML:HTML事件汇总

html事件是用户和页面交互的一些效果 &#xff0c;用户通过点击&#xff0c;触摸等等方式更新数据&#xff0c;页面在加载完成之后的交互效果就需要通过触发事件来完成&#xff0c;事件大概分为&#xff0c;鼠标事件&#xff0c;窗口事件&#xff0c;表单事件&#xff0c;键盘事…