作业2:字符串、文件操作,英文词频统计预处理
1.字符串操作:
- 解析身份证号:生日、性别、出生地等。
生日、性别、出生地等:ID = input('请输入十八位身份证号码: ')if len(ID) == 18:
print("你的身份证号码是 " + ID)
else:
print("错误的身份证号码")
ID_add = ID[0:6]
ID_birth = ID[6:14]
ID_sex = ID[14:17]
ID_check = ID[17]
# ID_add是身份证中的区域代码,如果有一个行政区划代码字典,就可以用获取大致地址#
area = {'441501':'汕尾市市辖区','441502':'汕尾市城区','441521':'汕尾市海丰县','441523':'汕尾市陆河县','441581':'汕尾市陆丰市'}
year = ID_birth[0:4]
moon = ID_birth[4:6]
day = ID_birth[6:8]
print("生日: " + year + '年' + moon + '月' + day + '日')
print("地区:{}".format(area[ID[0:6]]))
if int(ID_sex) % 2 == 0:
print('性别:女')
else:
print('性别:男')
# 此部分应为错误判断,如果错误就不应有上面的输出,如何实现?#
W = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
ID_num = [18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2]
ID_CHECK = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
ID_aXw = 0
for i in range(len(W)):
ID_aXw = ID_aXw + int(ID[i]) * W[i]
ID_Check = ID_aXw % 11
if ID_check == ID_CHECK[ID_Check]:
print('正确的身份证号码')
else:
print('错误的身份证号码')
- 凯撒密码编码与解码
word=input("请输入一段字母:");
n=input("请输入偏移值:");
s=ord("a");
e=ord("z");
choose=input("编码请按1,解码请按2:");
print("凯撒密码编码:",end="")
for i in word:
if s<=ord(i)<=e:
if choose == "1":
print(chr(s+(ord(i)-s+int(n))%26),end="");
elif choose == "2":
print("凯撒密码解码:", end="")
print(chr(s + (ord(i)-s-int(n)) % 26), end="");
else:
print("您的选择输入错误!")
else:
print(i,end="");
- 3.网址观察与批量生成
for
i
in
range
(
2
,
10
):
url
=
'http://www.ygdy8.net/html/gndy/china/list_4_{}.html'
.
format
(i)
print
(url)
4..英文词频统计预处理
- 下载一首英文的歌词或文章或小说,保存为utf8文件。
- 从文件读出字符串。
- 将所有大写转换为小写
- 将所有其他做分隔符(,.?!)替换为空格
- 分隔出一个一个的单词
- 并统计单词出现的次数
def readFile():
f=open("say.txt");
text=f.read();
print(text);
f.close();
return text;
def splitText():
dict={}
s="124.,,"
t=readFile().lower();
for i in s:
t=t.replace(i,'');
t = t.split(); #分割文本
for j in t:
dict[j]=t.count(j);
return dict;
def sortDict():
d=sorted(splitText().items(),reverse=True,key=lambda d:d[1]); '元组排序,降序,按值排序'
print("speech文本统计词频如下:\n");
for i in range(10):
print(d[i][0],"--",d[i][1]);
def main():
sortDict();
main(); -