python作业帮,Python中的Soundex算法(作业帮助请求)

美国人口普查局使用名为“soundex”的特殊编码来查找关于某人的信息。 soundex是基于姓氏的方式而不是拼写方式的姓氏编码(姓氏)。与SMITH和SMYTH不同的姓氏具有相同的代码并且一起归档。 soundex编码系统的开发使你可以找到一个姓氏,尽管它可能已被记录下各种拼写。Python中的Soundex算法(作业帮助请求)

在本实验中,您将设计,编码和记录一个程序,该程序在输入姓氏时会生成soundex代码。用户将被提示输入姓氏,程序应输出相应的代码。

探测法的基本编码规则

姓氏的每一个同音编码由字母和三个数字。所用的字母总是姓氏的第一个字母。根据下面显示的soundex指南将这些数字分配给姓氏的其余字母。如果需要的话,在最后添加零以始终产生一个四字符代码。额外的信件被忽视。

的Soundex编码指南

探测法分配关于各种辅音的数。声音相似的辅音被赋予相同的编号:

编号辅音

1 B,F,P,V 2 C,G,J,K,Q,S,X,Z 3 d,T 4升5 M,N 6 R

的Soundex忽略字母A,E,I,O,U,H,W,和Y

有3条遵循额外的Soundex编码规则。一个好的程序设计将把它们分别作为一个或多个单独的功能来实现。

第1名用双字母

如果姓氏有任何双字母,他们应该被视为一个字母。例如:

古铁雷斯编码为G362(G,3代表T,6代表第一个R,第二个R忽略,2代表Z)。 规则2.具有相同Soundex代码的并排字母名称

如果姓氏在soundex编码指南中具有相同编号的并排不同的字母,则应将其视为一个字母。例如:

Pfister编码为P236(P,F被忽略,因为它被认为与P相同,2代表S,3代表T,6代表R)。杰克逊被编码为J250(J,2代表C,忽略与C相同,S忽略与C相同,5代表添加的N,0)。

规则3.辅音分隔符

3.a.如果元音(A,E,I,O,U)将两个具有相同soundex编码的辅音分开,则编码元音右侧的辅音。例如:

Tymczak编码为T-522(T,5代表M,2代表C,Z被忽略(参见上面的“并排”规则),2代表K)。由于元音“A”将Z和K分开,所以K被编码。 3.b.如果“H”或“W”分开具有相同soundex编码的两个辅音,则右边的辅音不被编码。例如:

* Ashcraft编码为A261(A,2代表S,C忽略,因为与S相同,其中H代表中间值,6代表R代表,F代表1代表)。它没有编码A226。

到目前为止,这是我的代码:

surname = raw_input("Please enter surname:")

outstring = ""

outstring = outstring + surname[0]

for i in range (1, len(surname)):

nextletter = surname[i]

if nextletter in ['B','F','P','V']:

outstring = outstring + '1'

elif nextletter in ['C','G','J','K','Q','S','X','Z']:

outstring = outstring + '2'

elif nextletter in ['D','T']:

outstring = outstring + '3'

elif nextletter in ['L']:

outstring = outstring + '4'

elif nextletter in ['M','N']:

outstring = outstring + '5'

elif nextletter in ['R']:

outstring = outstring + '6'

print outstring

足够做的事情是问,我只是不知道如何将三个规则进行编码。那是我需要帮助的地方。所以,任何帮助表示赞赏。

2009-10-26

Josh

+0

我帮助澄清标题;-) –

2009-10-26 17:46:55

+3

我不是读你的整个家庭作业。用输入的内容和你想要的输出重新发布。 –

2009-10-26 17:47:29

+6

他设置了整个场景,并寻求如何继续前进的帮助。他在NO POINT要求回答。如果他重新发布要求说明输入和输出,那么应该关闭它。这是应该如何问一个作业问题的一个很好的例子! –

2009-10-26 17:50:39

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值