【Nivel de computadora 2】Temas completos

Preguntas reales de python de nivel dos de computadora



inserte la descripción de la imagen aquí


1. "Dos preguntas sobre los MOOC universitarios"

El archivo data.txt en el archivo adjunto es el archivo fuente de una página HTML en la plataforma MOOC de la Universidad China de la Red Love Course del Ministerio de Educación, que contiene una lista de universidades o instituciones en mi país que participan en la construcción de MOOC.

Esta pregunta responde a la pregunta 1

Pregunta 1: escriba un programa para extraer la lista de nombres de universidades o instituciones de data.txt, escriba el resultado en el archivo univ.txt, un nombre de universidad o institución por línea, y genere las universidades o instituciones en el orden en que aparecen en data.txt, de la siguiente manera:

……

Instituto de tecnología de Beijing

……

Universidad Normal de Beijing

……

Sugerencia: todos los nombres de universidades existen en forma de alt="Instituto de Tecnología de Beijing" en el archivo data.txt.

código:

with open("data.txt","r",encoding="utf-8") as f:
    lines = f.readlines()

f = open("univ.txt", "w")
for line in lines:
    if "alt=" in line:
    # 判断是否有alt,若有则用'alt'分割,分割后再用'"'分割
        d = line.split("alt=")[-1].split('"')[1]    
        f.write("{}\n".format(d))
f.close()

Esta pregunta responde a la pregunta 2:

Escriba un programa para extraer el nombre de la universidad del archivo univ.txt. El nombre de la universidad se basa en las palabras "universidad" o "facultad" como referencia, pero no incluye las palabras "estudiante universitario". Muestra todos los nombres de las universidades en la pantalla. No hay una línea en blanco entre cada línea de la universidad. Finalmente, se proporciona la cantidad de nombres que contienen "universidad" y "facultad", y hay universidades y facultades para el procesamiento universitario. La muestra es la siguiente (el número en la muestra no es el resultado real):

……

Instituto de tecnología de Beijing

……

Universidad Normal de Changsha

……

El número de nombres que contienen universidades es 10

El número de nombres que contienen colegios es 10

código:

n = 0  # 记录大学数量的计数器n
m = 0  # 记录学院数量的计数器m
with  open("univ.txt", "r", encoding="utf-8") as f:  # 以读的方式打开文件univ.txt
    lines = f.readlines()  # 返回一个列表,列表中每一个元素对于文件中每一行

for line in lines:  # 遍历列表中每一个元素
    line = line.replace("\n", "")  # 去除元素中的换行符
    if '大学生' in line:  # 如果列表元素中包含"大学生"字符串,不做计数
        continue
    elif '大学' in line:  # 基于列表元素中不包含"学院"字符串,而包含"大学"字符串。
        # 同时有大学和学院做大学处理,例如 中国社会科学院大学 (考点)
        print('{}'.format(line))  # 计数为大学+1,例如南京大学
        n += 1
    elif '学院' in line:  # 如果列表元素中包含"学院"字符串,则默认计数为学院+1
        print('{}'.format(line))  # 例如:江苏理工学院,归属于学院
        m += 1
print("包含大学的名称数量是{}".format(n))  # 输出大学计数
print("包含学院的名称数量是{}".format(m))  # 输出学院计数

2. Preguntas de aplicación integrales - cadena de valor

Hay un archivo de material data3.txt en el archivo adjunto, y el contenido del archivo es el siguiente:

La cadena de valor del modelo de negocio consta de tres eslabones: productos, herramientas y comunidades. Nuestro equipo toma el desarrollo de sistemas integrales como el producto principal actual y utiliza XAMPP, PHPSTORM, herramientas de desarrollo de WeChat y otro software para proporcionar un sistema de gestión integrado adecuado de acuerdo con los requisitos del cliente. ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

… (levemente

Por favor programe para lograr las siguientes funciones:

(1) Las primeras 10 palabras con las palabras más frecuentes en el archivo de estadísticas y la longitud de no menos de 2 caracteres se muestran en la pantalla después de clasificar las palabras y sus números de frecuencia en orden descendente de frecuencia de palabras. Cada línea muestra: una palabra y conecta las palabras y sus frecuencias de palabras con dos puntos en inglés. ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

El ejemplo es el siguiente:
Nosotros: 5
Sistema: 3
Wechat: 3
... (omitido)

import jieba
dict_words = {
    
    }
with open('data3.txt', 'r', encoding='GBK') as f:
    txt = f.read()
wordlist = jieba.lcut(txt)
for word in wordlist:
    if len(word)>=2:
        dict_words[word]=dict_words.get(word,0)+1
ls=list(dict_words.items())
ls.sort(key=lambda x:x[1],reverse=True)

for i in range(10):
    print("{}:{}".format(ls[i][0],ls[i][1]))

(2) El documento se divide en oraciones cortas con comas chinas y puntos chinos como separadores, y las oraciones que contienen las palabras con la frecuencia de palabra más alta se envían al archivo out.txt, cada oración es una línea, el ejemplo es el siguiente:

De esta manera, podemos atraer más oportunidades comerciales
y popularizar nuestra tecnología de desarrollo integral
... (omitido)

código:

fi = open('data3.txt','r',encoding='GBK')
lines = fi.read().strip().split('。')
fi.close()

ls=[]
for line in lines:
    linelist = line.strip().split(',')
    for line in linelist:
        if '我们' in line:
            ls.append(line)
fi.close()

fo = open('out.txt','w')
for i in ls:
    fo.write("{}\n".format(i))
fo.close()

3. Preguntas básicas de operación - salida de información

Consulte la plantilla de código para mejorar el código y lograr las siguientes funciones. Ingrese un número entero y un carácter del teclado, separados por una coma, y ​​muestre y emita un mensaje en la pantalla. ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

Ejemplo 1:

Entrada: "10,@"
Salida: "@@@@@@@@@@10@@@@@@@@@@@"

Código 1:

ls= input().split(',') #将从键盘上输入的用逗号隔开的字符串转换为列表
                       #例如输入:10,@  
                       #ls为['10', '@']
                       #ls[0]为'10' ,eval(ls[0])*2+len(ls[0])表达式值为22   
                       #ls[1]为'@'
print(ls[0].center(eval(ls[0])*2+len(ls[0]),ls[1]))
                       #'10'.center(22,"@")即为输出结果,考察字符串的center方法
#str.center(x,y) 会用字符串str构造一个新的字符串,
#新的字符串长度是x, 两边填充y。此处的x是数字,y是填充字符
# str:'10'
#   x:22
#   y:"@"
#输出结果为"@@@@@@@@@@10@@@@@@@@@@"

Código 2:

ls= input().split(',')
print(eval(ls[0])*ls[1]+ ls[0] + eval(ls[0])*ls[1])

Supongo que te gusta

Origin blog.csdn.net/guanguan12319/article/details/129510988
Recomendado
Clasificación