Python入门程序 字符串应用(学号判断程序、密码破解程序、身份证的秘密)

Python入门程序 字符串应用(学号判断程序、密码破解程序、身份证的秘密)

没想到学校会在大二同时学习Java的的时候一起学Python语言,在这写一些平时的python编程作业。

就从字符串的应用开始吧,后面可能还会写更多其他的。


1.学号判断程序

任务:学号是学生在学校的唯一身份判别号码,我校学号共12位,它的含义,其中代表系部的情况如下所示:

  • 201865110006,6511代表“网络资源系”
  • 程序编写要求:
    • 要求从键盘输入该学生的学号,再经判断后输出该生是否为“网络资源系”的学生。
    • 需使用字符串的切片操作。
    • 输出显示 如下图所示:
    • Python入门程序 字符串应用(学号判断程序、密码破解程序、身份证的秘密)_第1张图片

下面是这个程序的代码:

#学号判断程序

str_stuNo = input("请输入您的学号:")
#判断学号是否是12位,不对则重新输入
while(len(str_stuNo)!=12):
    str_stuNo = input("您输入的学号位数不对,请重新输入:")

#系部判断
if(str_stuNo[4:8]=="6511"):
    print("学号为"+str_stuNo+"的学生是网络资源系的学生")

运行的结果是:

Python入门程序 字符串应用(学号判断程序、密码破解程序、身份证的秘密)_第2张图片

  • 这个字符串应用的程序首先需要输入一段学号,然后进行利用while循环判断位数是否为12,不是的话需要重新输入。
  • 如果输入的是12位,接下来需要进行切片,取出要求中的字符串进行比较。

另外除了利用len()函数计算字符串位数之外还可以利用将字符串每个字符转换为ACSLL码进行判断,代码如下:

num=0
for i in id:
    if ord(i)>=48 and ord(i)<=57:
        num=num+1

2.密码破解程序

任务:现有一个字符串,该字符串为加密后的一个密码,具体情况如下:

  • 该字符串是: "ixo678", 其中o是字母
  • 现猜测其加密码规则是:在其ASCII码的值上再加了5
  • 现要求将该字符串进行解密,得到真正的密码
  • 解密前需了解ord 函数和chr函数

下面是这个程序的代码:

#密码破解程序
miwen = "ixo678"#密文字符串
jiemi=""#解密

#在这之前你需要知道:
#ord函数将字符串转换为ASCLL码值
#chr将ASCLL码值转换为字符
for i in range(len(miwen)):
    jiemi+=chr(ord(miwen[i])-5)

print("解密后的密码是:",jiemi)
    

运行的结果是:

  • 这个字符串应用程序告诉一段字符串,需要在其ASCLL码值减5后有输出字符串,你需要明白
  • ord函数将字符串转换为ASCLL码值
  • chr将ASCLL码值转换为字符

3.身份证的秘密

任务:我国身份证号是公民的唯一 识别号码,包含相应的身份信息,现要求用户从键盘输入18位的身份证号,经程序判断后输出相应的身份信息。

  • 身份证号码为18位,规则如下图所示::
  • Python入门程序 字符串应用(学号判断程序、密码破解程序、身份证的秘密)_第3张图片
  • 程序输出显示如下图所示:
  • Python入门程序 字符串应用(学号判断程序、密码破解程序、身份证的秘密)_第4张图片

下面是这个程序的代码:

str_id=input( "请输入身份证号码: ") #举例: 430120199502121487

#身份证位数判断
while(len(str_id)!=18):
    str_id = input("您输入的身份证号位数不对,请重新输入: ")
    
#省份识别
if(str_id[0:2]=="43"):
    province ="湖南省"

#出生日期
birthday=str_id[6:14]

#性别识别
if(int(str_id[-2])%2==0):#偶数为女性
    sex="女"
else:
    sex="男"

#身份证保密显示,replace函数
showid=str_id.replace(str_id[-8:-4],"****")

print("-"*20)
print("该人的身份信息如下:")
print( "所在省份:", province)
print("出生日期:", birthday)
print("性别:",sex)
print("-"*20)
print("身份证保密显示如下:",showid)

运行的结果是:

Python入门程序 字符串应用(学号判断程序、密码破解程序、身份证的秘密)_第5张图片

  • 这个字符串应用的程序首先需要输入一段身份证号码,然后进行利用while循环判断位数是否为18,不是的话需要重新输入。
  • 如果输入的是18位,接下来需要进行切片,取出要求中的字符串进行比较。
  • 首先取请两位判断是不是”43“,是的话就是”湖南省“。
  • 然后取出出生日期的字段。
  • 字符串的下标最后一位永远是-1,性别是倒数第二位,因此可以用-2来取。取出的是字符串类型,需要强制转换为整数类型(int),然后进行奇数偶数判断。
  • 要保留身份证,则需要将部分自动进行覆盖,python字符串中可以用replace()函数进行覆盖。
  • 最后按要求输出。

上面三个python小程序是对字符串内容的练习。

你可能感兴趣的:(Python学习,python,编程语言,字符串)