編程題
1、學號是學生在學校的唯一身份判別號碼,如學號共12位,也包括它的含義主要涉學生年級,院系,班級和學號。
2、密碼破解題:現有一個字符串,該字符串為加密後的一個密碼,具體情況如下:
該字符串是:「ixo678」,其中o是字母現猜測其加密碼規則是:在其ASCII碼的值上再加了5現要求將該字符串進行解密,得到真正的密碼解密前需了解ord函數和chr函數3、我國身份證號是公民的唯一識別號碼,包含相應的身份信息,現要求用戶從鍵鹽輸入18位的身份證號,經程序判斷後輸出相應的身份信息,並實現保密輸出身份證號。
身份證號碼為18位,規則如下:以身份證號430125199502121487為例
前兩位數字代表身份號:如43代表湖南省從第7位開始的8位數代表出生年月日倒數第二位,若為奇數代表男性,若為偶數代表女性思路分析
1、通過len函數,判斷字符串長度是否符合要求。使用字符串的切片操作,對學號含義進行解析
2、使用ord和chr函數,對字符和ASCII碼值間進行轉換
3、使用字符串切片操作對身份證號進行識別,通過replace函數實現數字的替換保密顯示。
編碼實現
1、學號的判斷
#!/usr/bin/env python # -*- coding: utf-8 -*-# @Author : 青松# @Time : 2020/3/16 15:29# @Site : www.itclub16.com#學號判斷程序str_stuNo=input("請輸入您的學號:")#判斷學號是否是12位,不對則重新輸入while(len(str_stuNo)!=12): str_stuNo = input("您輸入的學號位數不對,請重新輸入:")if(str_stuNo[4:8]=="6511"): #系部判斷 print("學號為"+str_stuNo+"的學生是網絡資源系的學生")運行結果:
2、密碼破解程序
#!/usr/bin/env python # -*- coding: utf-8 -*-# @Author : 青松# @Time : 2020/3/16 15:45# @Site : www.itclub16.com#密碼破解程序miwen="ixo678" #密文字符串print("密文:",miwen)mingwen="" #解密後的明文for n in range(len(miwen)): #ord函數將字符轉換為ASCII碼值 #chr將ASCII碼值轉換為字符 mingwen+=chr(ord(miwen[n])-5)print("解密後的明文:",mingwen)運行結果:
3、身份證的秘密
#!/usr/bin/env python # -*- coding: utf-8 -*-# @Author : 青松# @Time : 2020/3/16 15:52# @Site : www.itclub16.com#身份證的秘密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("--")print("該人的身份信息如下:")print("所在省份:",province)print("出生日期:",birthday)print("性別:",sex)print("--")print("身份證保密顯示如下:",showid)運行結果: