在下面的代码中,问题13a要求让函数计算字符串中有多少个元音。 (我不必在我的作业中调用这个功能。)但我打电话给它测试它,那部分是完全正确的,它的工作原理。字符串可以是大写和小写,没有标点符号。
问题13b要求创建字典。关键是字符串中的单词(字符串有多个单词)。值是该单个单词中的元音数量。问题是这样:如果单词具有至少元数量的元音,则将其附加到字典中(带有元音量的单词)此函数有两个参数。第一个是没有标点符号的字符串。第二个参数表示必须将单词添加到字典中的元音数量。教授希望我将函数13a称为算法的一部分。话虽如此,问题13a的输出是该问题中的密钥(单个单词)的值。我对这个问题遇到了麻烦,因为我不能让Python将13a的输出(一个单词的元音数)附加到字典键上。
而且在下面的代码中,我还没有在我应该使用变量i的部分工作。
这是我的代码:
print("Question 13a")
def vowelCount(s):
vowels = 'aeiou'
countVowels = 0
for letter in s.lower():
if letter in vowels:
countVowels += 1
print(countVowels)
print("Question 13b")
def manyVowels(t, i):
my_string = t.split()
my_dict = {}
for word in my_string:
number = vowelCount(word)
my_dict[word].append(number)
print(my_dict)
print(manyVowels('they are endowed by their creator with certain unalienable rights', 2))
如果您无法理解这个问题,那么这里是教授的指示:
问题13a(10分) 字母a,e,i,o和u是元音。没有其他字母是元音。 编写一个名为vowelCount()的函数,它将一个字符串s作为参数并返回 包含的元音数量。字符串s可以包含大写和小写字符。 例如,函数调用vowelCount(' Amendment')应返回整数3,因为 有三次出现的字母' A'和'。
问题13b(10分) 编写一个名为manyVowels()的函数,它接受一个text,t和一个整数i,as 参数。文本t仅包含小写字母和空格。 manyVowels()应该返回一个字典,其中的键都是t中包含至少i的所有单词 元音。对应于每个键的值是其中的元音数。为了充分的信用, manyVowels()必须从问题11a中调用辅助函数vowelCount()来确定 每个单词中的元音数量。例如,如果输入文本包含单词" hello",则 "你好"应该是字典中的一个键,它的值应该是2,因为有2个元音 "你好&#34 ;. 输入: 1. t,由小写字母和空格组成的文本 2. i,元音的阈值数量 返回:键值对的字典,其中键是包含至少i的t中的单词 元音和每个键的值是它包含的元音数量。 例如,以下是正确的输出。
text = 'they are endowed by their creator with certain unalienable rights'
print(manyVowels(text, 3))
{'certain': 3, 'unalienable': 6, 'creator': 3, 'endowed': 3}
答案 0 :(得分:1)
添加条件以仅添加具有足够音阶的单词
def vowelCount(s):
vowels = 'aeiou'
countVowels = 0
for letter in s.lower():
if letter in vowels:
countVowels += 1
return countVowels
def manyVowels(t, i):
my_string = t.split()
my_dict = {}
for word in my_string:
number = vowelCount(word)
if number >= i:
my_dict[word] = number
return my_dict
第my_dict[word] = number
行将vowelCount(word)
的结果添加到您的词典中。但只有当浊音的数量至少为i
。
答案 1 :(得分:0)
您的代码需要进行一些调整:
第一个函数应该返回一个不打印它的值:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package chat;
import java.net.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
/**
*
* @author Allura
*/
public class ChatServer extends JFrame {
ArrayList StreamOutput;
Socket mainSocket;
public class ClientHandler implements Runnable
{
Socket sock;
BufferedReader reader;
public ClientHandler(Socket clientSock)
{
try
{
sock = clientSock;
InputStreamReader input = new InputStreamReader(sock.getInputStream());
reader = new BufferedReader(input);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public void run()
{
String message;
try
{
while((message = reader.readLine()) != null)
{
sendToAll(message);
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
public static void main(String[] args)
{
new ChatServer().go();
}
public void go()
{
StreamOutput = new ArrayList();
try
{
ServerSocket serverSock = new ServerSocket(5000);
while(true)
{
mainSocket = serverSock.accept();
PrintWriter writer = new PrintWriter(mainSocket.getOutputStream());
StreamOutput.add(writer);
System.out.println("Request from client accepted. Connection established.");
Thread myRunner = new Thread(new ClientHandler(mainSocket));
myRunner.start();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public void sendToAll(String message)
{
Iterator it = StreamOutput.iterator();
while(it.hasNext())
{
try
{
PrintWriter writer = (PrintWriter) it.next();
writer.println(message);
writer.flush();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
}
第二个功能是没有正确地将带有附加值的键添加到字典中。你应该使用:
return (countVowels)
答案 2 :(得分:0)
def vowelCount(s):
num_vowels=0
for char in s:
if char in "aeiouAEIOU":
num_vowels = num_vowels+1
return num_vowels
def manyVowels(text, i):
words_with_many_vowels = dict()
text_array = text.split()
for word in text_array:
if vowelCount(word) >= i:
words_with_many_vowels[word] = vowelCount(word)
return words_with_many_vowels
print(vowelCount('Amendment'))
text = 'they are endowed by their creator with certain unalienable rights'
print(manyVowels(text, 3))
输出:
3
{'creator': 3, 'certain': 3, 'endowed': 3, 'unalienable': 6}
试试here!