程序没有给出预期的结果

时间:2017-04-29 16:52:24

标签: python

我目前正在关注python中的cs课程介绍。代码如下。

school = 'Massachusetts Institute of Technology'
numVowels = 0
numCons = 0

for char in school:
    if char == 'a' or char == 'e' or char == 'i' \
    or char == 'o' or char == 'u':
        numVowels += 1
    elif char == 'o' or char == 'M':
        print(char)
    else:
        numCons -= 1

print('numVowels is: ' + str(numVowels))
print('numCons is: ' + str(numCons)) 

根据我的观察:

numVowels = 12
numCons = -23

口译员说:

numVowels = 11
numCons = -25

这是我从edx课程中得到的一个问题。我试图解决这个问题。

1 个答案:

答案 0 :(得分:5)

您的代码似乎区分大小写。快速修复将是

import string
school = 'Massachusetts Institute of Technology'
numVowels = 0
numCons = 0

for char in school.lower():
    if char in "aeiou":
        numVowels += 1
    elif char in string.ascii_letters:
        numCons += 1

导致

@Autowired
private EmailTools emailTools;


@Controller
public class RegistrationController {

@RequestMapping(value="/registerUser", method=RequestMethod.POST )
public String registerUser(HttpSession session,Model model,User user){
//RegisterUserDetails of scope prototype
RegisterUserDetails regUserDetails = 
appContext.getBean(RegisterUserDetails.class);
//rgistering user in db
regUserDetails.setUser(user);
//sending confirmation email  
emailTools.SendEmail(user.getEmail(), subject, content);
return "home";

虽然请注意您的代码不是辅音,只是不是元音或m的字符。

也许请考虑以下内容:

public class EmailTools {
private Properties props;
private Key internalKey;
public EmailTools(Properties props, Key internalKey){
    this.props=props;
    this.internalKey=internalKey;

}

public synchronized void SendEmail(String toAddress, String subject, String content) {


    final String fromAddress = props.getProperty("from.address");
    final String password = Encryptor.decrypt(props.getProperty("email.password"),internalKey);

    Session session = Session.getInstance(props,
      new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(fromAddress, password);
        }
      });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(fromAddress));
        message.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse(toAddress));
        message.setSubject(subject);
        message.setText(content);
        Transport.send(message);
        System.out.println("Done");
    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}
}

虽然这实际上取决于您尝试使用生成的numVowels和numCons变量。如果没有明确的预期产出,很难说。