python单词处理

给定一个由英文字符、数字、空格和英文标点符号组成的字符串,长度不超过2000,请将其切分为单词,要求去掉所有的非英文字母,每行输出一个单词。
例如有文本:Python was created in 1990 by Guido van Rossum at Stichting Mathematisch Centrum (CWI, see http://www.cwi.nl/) in the Netherlands.
处理完成之后得到以下单词:

img

img

基于new bing的编写参考学习,有帮助记得采纳一下哦!:

import re  # 导入正则表达式模块

# 给定字符串
s = "Python was created in 1990 by Guido van Rossum at StichtingMathematisch Centrum (CWl, see http://www.cwi.nl) in the Netherlands."

# 利用正则表达式匹配所有的英文单词,注意单词中的连字符和撇号需要特殊处理。
words = re.findall(r"[A-Za-z]+(?:[-']?[A-Za-z]+)*", s)

# 输出所有单词,每行一个
for word in words:
    print(word)


img

img

上面回答是对的
不过这题s应该=input()

  • 文章:【2】基于python的《飞机大战》游戏(分为面向过程版本和面向对象版本) 中也许有你想要的答案,请看下吧
  • 除此之外, 这篇博客: 电子科大《python语言程序设计》结课作业中的 作业内容与源代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 作业内容:
    在这里插入图片描述源代码:

    
    import csv
    from tkinter import messagebox
    import numpy as np
    from tkinter import *
    import random
    
    
    class Application(Frame):
    
    
        def __init__(self, master=None):
            super().__init__(master)  # 将一系列方法初始化
            self.master = master
            self.i=0
            self.read()
            self.choosenum()
            self.score = 0
            self.pack()
            self.choosebutton()
            self.read()
            self.choosenum()
            self.rmidLbl = Label(self,text="0/10")
            self.rmidLbl.pack(side='top')  #布置一个用以提示当前题目序号的标签
            
        def read(self):
            #读取csv文件中的数据
            questiondata = []
            with open('ques.csv', 'r', encoding='utf-8') as csvfile:
                csv_reader = csv.reader(csvfile)  # 使用csv.reader读取csvfile中的文件
                birth_header = next(csv_reader)  # 读取第一行每一列的标题
                for row in csv_reader:  # 将csv 文件中的数据保存到questiondata中
                    questiondata.append(row)
    
            self.data = np.array(questiondata)  # 将list数组转化成array数组
    
        def choosebutton(self):
            """创建组件"""
            
            self.v = StringVar()
            self.v.set("o")
            if self.data[self.nums[self.i]][1] != "t":
               #对于选择题,创造四个选项并与字符变量挂钩 
                self.r1 = Radiobutton(self, text='A', value='A', variable=self.v)
                self.r2 = Radiobutton(self, text='B', value='B', variable=self.v)
                self.r3 = Radiobutton(self, text='C', value='C', variable=self.v)
                self.r4 = Radiobutton(self, text='D', value='D', variable=self.v)
    
                self.r4.pack(side='bottom')
                self.r3.pack(side='bottom')
                self.r2.pack(side='bottom')
                self.r1.pack(side='bottom')
            else:
                #对于填空题,创造一个可以输入的文本框并与字符变量挂钩
                self.v.set("在此输入答案")
                self.fill=Entry(self,textvariable=self.v)
                self.fill.pack(side='bottom')
                self.v.set(self.fill.get())
            self.cfmbtn=Button(self, text='确定', font=("华文行楷", 15), width=20, height=5, command=self.next)
            self.cfmbtn.pack(side='right')#确认按钮
    
        def showquiz(self):
            self.stem = Message(self, text=self.data[self.nums[self.i]][0], width=700, font=("华文楷体", 15))
            self.stem.pack(side='top')
            if self.data[self.nums[self.i]][1] != "t":
                #对于选择题,对每个选项定义一个message控件并打包
                self.optiona = Message(self, text=self.data[self.nums[self.i]][1], width=700, font=("华文楷体", 12))
                self.optionb = Message(self, text=self.data[self.nums[self.i]][2], width=700, font=("华文楷体", 12))
                self.optionc = Message(self, text=self.data[self.nums[self.i]][3], width=700, font=("华文楷体", 12))
                self.optiond = Message(self, text=self.data[self.nums[self.i]][4], width=700, font=("华文楷体", 12))
    
                self.optiona.pack(side='top')
                self.optionb.pack(side='top')
                self.optionc.pack(side='top')
                self.optiond.pack(side='top')
            #对于填空题,仅需提供题干即可
            self.rmidLbl.config(text=str(self.i+1)+"/10") #提示当前题号
    
    
    
            
        def count(self):
            #比较答案与输入(选择)的答案,如果正确则获得十分
            print(self.data[self.nums[self.i]])
            print(self.data[self.nums[self.i]][5])
            print("你选的是"+self.v.get())
            if self.data[self.nums[self.i]][5] == self.v.get():
                print(self.v.get())
                self.score += 10
    
    
        def clear(self):
            #清除控件
            if self.data[self.nums[self.i]][1] != "t":
                self.optiona.pack_forget()
                self.optionb.pack_forget()
                self.optionc.pack_forget()
                self.optiond.pack_forget()
                self.stem.pack_forget()
                self.r1.pack_forget()
                self.r2.pack_forget()
                self.r3.pack_forget()
                self.r4.pack_forget()
                self.cfmbtn.pack_forget()
            else:
                self.cfmbtn.pack_forget()
                self.stem.pack_forget()
                self.fill.forget()
                
            self.v.set('o')
    
        def next(self):
            #通过对计数变量i的值的变化来获得并显示下一道题
            if self.i<9:
                #判断是否已经显示过全部的十道题
                if self.v.get() != 'o' and self.v.get()!="在此输入答案":
                    #判断是否未输入或未填空
                    self.count()
                    self.clear()
                    print(self.score)
                    self.i += 1
                    self.choosebutton()
                    self.showquiz()
                else:
                    messagebox.showinfo('警告', '你未完成作答')
            else:
                #若已经完成作答,则显示得分
                self.count()
                self.clear()
                self.rmidLbl.pack_forget()
                Label(self, text="作答结束,你的得分为:",font=("华文行楷", 25)).pack()
                Label(self, text=str(self.score),font=("Times New Roman", 30),fg="red").pack()
                
    
                
    
    
        def choosenum(self):
            nums = []
            while len(nums) < 10:
                nums.append(random.randint(0, len(self.data) - 1))
                nums = list(set(nums))
            self.nums = nums  # 随机选择十个题号
    
    
    if __name__ == "__main__":
        root = Tk()
        root.title('自动组卷评卷系统')
        root.geometry('1050x600+200+200')
        app = Application(master=root)
        app.showquiz()
    
    
    
        root.mainloop()
    

    作为科大某边缘学院的大四学渣,几乎没有任何编程基础和项目经验。这个东西完全是我凭借着一腔热血搞了三天从零开始搞出来的。最初我连类都不会的时候,不知道怎么在不同的函数间传递参数,那才是整一个惨字了得。

    我的题库是自己手动搞的一个csv文件,也就是代码中的那个ques.csv,格式大概是这样的:
    在这里插入图片描述第一排是题干,第二三四五是选项(填空题的话就没选项,第二空写t来标识)