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]) * 10
    jym = "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 += 1
    elif "a" <= i <= "z":
        xxzm += 1
    elif "\u4e00" <= i <= "\u9fff":
        hz += 1
    elif "0" <= i <= "9":
        sz += 1
    else:
        qt += 1

print("大写字母%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 = i
    y += s
print("密文为:%s" % y)
 
#代码结束

9. 选择题

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

API管理平台:你用的到底是哪个?

Apifox是不开源的&#xff0c;在github的项目只是readme文件&#xff0c;私有化需要付费。当然saas版目前是免费使用的。 一、Swagger 为了让Swagger界面更加美观&#xff0c;有一些项目可以帮助你实现这一目标。以下是一些流行的项目&#xff0c;它们提供了增强的UI和额外的功…

.NET邮箱API发送邮件的流程?如何使用API?

.NET邮箱API发送邮件需要哪些步骤&#xff1f;怎么配置API发信&#xff1f; 电子邮件已经成为我们日常工作和生活中不可或缺的一部分。对于开发人员来说&#xff0c;掌握如何使用API发送邮件是一项非常实用的技能。AokSend将详细介绍使用.NET邮箱API发送邮件的流程&#xff0c…

Oracle ORA-28547:connection to server failed,probable Oracle Net admin error

使用Navicat连接oracle数据库时报ORA-28547错误 因为Navicat自带的oci.dll并不支持oracle11g&#xff0c;需要去官网下载支持的版本。 1.去oracle下载对应的oci.dll文件 下载地址&#xff1a;Oracle Instant Client Downloads 可以用 11.2.0.4 2. 复制刚下载下来的instant…

Linux进阶篇:firewalld详解——firewalld 的概念作用以及如何使用

Linux firewalld详解——firewalld 的概念&作用以及如何使用 在这篇文章中&#xff0c;我们将详细介绍Linux系统中的firewalld&#xff0c;它是一款强大的防火墙管理工具。我们将介绍firewalld的基本概念和作用&#xff0c;并通过实例演示如何使用它来保护您的系统。 一、…

轻松记录收支明细,支持查看所有记录并统计某个账户的开销,轻松掌握开销明细

在繁忙的现代生活中&#xff0c;我们时常为琐碎的开销所困扰&#xff0c;难以清晰掌握自己的财务状况。为了帮助你更好地管理个人财务&#xff0c;我们推出了一款全新的智能收支记录工具&#xff0c;让你轻松记录每一笔开销&#xff0c;并实时统计账户信息&#xff0c;从此告别…

【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器

【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器 文章目录 【论文阅读】MCTformer: 弱监督语义分割的多类令牌转换器一、介绍二、联系工作三、方法四、实验结果 Multi-class Token Transformer for Weakly Supervised Semantic Segmentation 本文提出了一种新的基于变换…

LeetCode——622设计循环队列

. - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/design-circular-queue/ 1.题目 设计你的循环队列实现。 循环队列是一…

成都污水处理设备厂家哪家好?

在成都地区&#xff0c;选择一家专业可靠的一体化污水处理设备厂家对于实现环保目标至关重要。在这方面&#xff0c;四川博水环保科技有限公司无疑是一个值得推荐的选择。 博水办公楼外景 四川博水环保科技有限公司是一家领先的一体化污水处理设备供应商&#xff0c;专注于为各…

执行docker-compose up的时候报错network with driver “bridge“

执行docker-compose up的时候报错network with driver “bridge” (base) [rootVM-100-213-centos ~/composetest]# docker-compose up -d Creating network “composetest_default” with the default driver ERROR: could not find an available, non-overlapping IPv4 addre…

docker基本的掌握

前言&#xff1a;先要了解docker是干什么的&#xff0c; 1掌握基本概念&#xff0c;如;镜像&#xff0c;容器&#xff0c;数据卷 2知道使用常用命令 简易图; 补充&#xff1a; 默认情况下&#xff0c;每次重启虚拟机我们都需要手动启动Docker和Docker中的容器。通过命令可以实…

计算机网络-TCP连接建立阶段错误应对机制

错误现象 丢包 网络问题&#xff1a;网络不稳定可能导致丢包&#xff0c;例如信号弱或干扰强。带宽限制可能导致路由器或交换机丢弃包&#xff0c;尤其是在高流量时段。网络拥塞时&#xff0c;多个数据流竞争有限的资源&#xff0c;也可能导致丢包。缓冲区溢出&#xff1a;TC…

【深度学习】最强算法之:Transformer

Transformer 1、引言2、Transformer2.1 引言2.2 核心概念2.3 应用2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c;昨天的感受咋样 小鱼&#xff1a;啥感受啊&#xff1f; 小屌丝&#xff1a;你确定不知道&#xff1f; 小鱼&#xff1a;我… 小屌…

查看每月网站的带宽以及网站访问记录

接到一位用户反馈想要了解知道在带cPanel面板的虚拟主机中如何查看每个网站使用的带宽数值以及网站访问记录&#xff0c;这边私信进行沟通了解到他当前使用的是Hostease 的LInux虚拟主机&#xff0c;由于是属于新手&#xff0c;对于cPanel面板也不是很了解&#xff0c;因而在论…

Python爬虫之Scrapy框架基础

Scrapy爬虫框架介绍 文档 英文文档中文文档 什么是scrapy 基于twisted搭建的异步爬虫框架. scrapy爬虫框架根据组件化设计理念和丰富的中间件, 使其成为了一个兼具高性能和高扩展的框架 scrapy提供的主要功能 具有优先级功能的调度器去重功能失败后的重试机制并发限制ip使用次…

基于spring boot的大学生体质测试管理系统

基于spring boot的大学生体质测试管理系统设计与实现 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 …

【SQL Sever】3. 用户管理 / 权限管理

1. 创建登录名/用户/角色 在SQL Server中&#xff0c;创建用户通常涉及几个步骤。 首先&#xff0c;你需要创建一个登录名&#xff0c;然后你可以基于这个登录名在数据库中创建一个用户。 以下是如何做到这一点的步骤和相应的SQL语句&#xff1a; 创建登录名 首先&#xff0c…

面试算法-171-翻转二叉树

题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {if (root n…

STM32电机控制SDK实战

一、前言 本次测试基于ST开发板NUCLEO-F302R8&#xff0c;驱动板X-NUCLEO-IHM07M1&#xff0c;使用无刷直流电机BLDC实现FOC控制&#xff1b;采样三霍尔传感器检测电机转子位置&#xff1b;基于速度环闭环控制实现电机转动&#xff1b; 二、实战环境 软件环境&#xff1a; 1…

IP地址查询的应用

IP地址是互联网中用于唯一标识设备的数字地址&#xff0c;通过查询IP地址&#xff0c;我们可以获取到与之相关的各种信息。IP地址查询在网络安全、网络管理、市场营销等领域都有着广泛的应用。本文将探讨IP地址查询的各种应用场景及其重要性。 IP地址准查询&#xff1a;IP数据…

【架构六】系统架构风格

一、数据流风格 批处理&#xff1a;每一步都是独立的&#xff0c;并且每一步都是顺序执行的&#xff0c;只有当前一步处理完毕后&#xff0c;后一步处理才开始。数据必须是完整的&#xff0c;作为一个整体进行传递。如日志分析、计费程序等。管道/过滤器&#xff1a;每个构件都…