PYTHON Fantasy Adventure 15: Descubriendo un nuevo mundo

PYTHON Fantasy Adventure 15: Descubriendo un nuevo mundo

Sección 15 El pensamiento lógico de los programadores

Todos los días, solo se necesitan diez minutos para que todos coman al mediodía. Si tienes algo que hacer, ¡échale un vistazo y domina un idioma fácilmente! Trabajemos juntos duro.

Prefacio

Hola a todos y bienvenidos al mundo de aventuras de fantasía de PYTHON. Soy su buen amigo, Xiaopengpeng.
Queridos amigos, después de todos los altibajos, ¿ya hemos cosechado y crecido mucho? No importa si no es así. Creo que podemos frenarnos un poco y pensar en lo que podemos hacer para mejorar y mejorarnos a nosotros mismos.

¿Cómo debo aprender PYTHON?

En esta lección, no quiero involucrar demasiados puntos de conocimiento nuevos, pero solo quiero hablar contigo sobre los problemas que todos pueden encontrar en el estudio del drama. Para mí, el mayor problema es: ¡puedo hacer todo al día y no puedo hacer nada! ¿Cómo hacer? De hecho, ¡pensémoslo detenidamente! ¡La razón importante es que no sabemos cómo resolver el problema! Esto es lo que a menudo nos dicen los ancianos, el camino hay que recorrerlo paso a paso, ¡y la comida hay que comerla de un bocado! ¡Esta frase ya nos ha dado la respuesta! Si podemos dividir problemas complejos en muchos pasos, ¡podemos resolver el problema paso a paso! ¡Todos los problemas se resolverán! ¡Esta es la respuesta!

Analisis de CASO

"Imprimir tabla de multiplicar nueve-nueve"

Cómo hacerlo
Piense en los pasos:

print('1 X 1 = 1')
print('1 X 2 = 2  2 X 2 = 4')
print('1 X 3 = 3  2 X 3 = 6  3 X 3 = 9')
print('1 X 4 = 4  2 X 4 = 8  3 X 4 = 12  4 X 4 = 16')
...
...

¿Es eso así? Hermano, también somos programadores de todos modos, así que no funcionará.
Entonces, ¿de otra manera? ¡Piense primero, luego opere! ! !

Veamos nuevamente la tabla de multiplicar nueve-nueve-nueve, encontraremos una regla: en cada línea de la ecuación, el primer dígito aumentará, el segundo dígito permanecerá sin cambios y habrá cuántas ecuaciones en las primeras líneas.

Para hacerlo más simple, imprima esto:

1 X 2 = 2  2 X 2 = 4
1 X 3 = 3  2 X 3 = 6  3 X 3 = 9

Ahora lo que tenemos que hacer es usar la instrucción for:

for i in range(1,3):
    print(str(i) + ' X 2 = ' + str(i*2))

for i in range(1,4):
    print(str(i) + ' X 3 = ' + str(i*3))  

¿Pero esto sigue siendo problemático? ¡La impresión de PYTHON no debe envolver! ¿Es necesario mejorarlo?

SUGERENCIA: ¡
Hay un parámetro 'final' en la función print () para controlar el número de saltos de línea y el carácter final! No hay mucho que decir, ¡puedes entender la verdad mirando un ejemplo!

print('hello',end='')
print('world')

print('hello',end='  ')
print('world')

print('hello',end='!')
print('world')

la respuesta es:

helloworld
hello  world
hello!world

Ahora optimízalo:

for i in range(1,3):
    print('%d X %d = %d' % (i,2,i*2) ,end=' ')

for i in range(1,4):
    print('%d X %d = %d' % (i,3,i*3),end = ' ')

Actualice al mismo tiempo:

for i in range(1,2):
    print( '%d X %d = %d' % (i,1,i*1) ,end = '  ' )
print('') 

for i in range(1,3):
    print( '%d X %d = %d' % (i,2,i*2) ,end = '  ' )
print('') 

for i in range(1,4):
    print( '%d X %d = %d' % (i,3,i*3) ,end = '  ' )
print('') 

for i in range(1,5):
    print( '%d X %d = %d' % (i,4,i*4) ,end = '  ' )
print('')

for i in range(1,6):
    print( '%d X %d = %d' % (i,5,i*5) ,end = '  ' )
print('') 

for i in range(1,7):
    print( '%d X %d = %d' % (i,6,i*6) ,end = '  ' )
print('')

for i in range(1,8):
    print( '%d X %d = %d' % (i,7,i*7) ,end = '  ' )
print('') 

for i in range(1,9):
    print( '%d X %d = %d' % (i,8,i*8) ,end = '  ' )
print('') 

for i in range(1,10):
    print( '%d X %d = %d' % (i,9,i*9) ,end = '  ' )
print('') 

la respuesta es:

1 X 1 = 1  
1 X 2 = 2  2 X 2 = 4  
1 X 3 = 3  2 X 3 = 6  3 X 3 = 9  
1 X 4 = 4  2 X 4 = 8  3 X 4 = 12  4 X 4 = 16  
1 X 5 = 5  2 X 5 = 10  3 X 5 = 15  4 X 5 = 20  5 X 5 = 25  
1 X 6 = 6  2 X 6 = 12  3 X 6 = 18  4 X 6 = 24  5 X 6 = 30  6 X 6 = 36  
1 X 7 = 7  2 X 7 = 14  3 X 7 = 21  4 X 7 = 28  5 X 7 = 35  6 X 7 = 42  7 X 7 = 49  
1 X 8 = 8  2 X 8 = 16  3 X 8 = 24  4 X 8 = 32  5 X 8 = 40  6 X 8 = 48  7 X 8 = 56  8 X 8 = 64  
1 X 9 = 9  2 X 9 = 18  3 X 9 = 27  4 X 9 = 36  5 X 9 = 45  6 X 9 = 54  7 X 9 = 63  8 X 9 = 72  9 X 9 = 81  

¡Todos, miren más de cerca!
El número de filas es (1,10) pero ¿aumenta el número de columnas? ¡Piénsalo!

for i in range(1,10):
    for j in range(1,i+1):
        
        print('%d X %d = %d' % (i , j, i*j),end = '  ')
    print('')
1 X 1 = 1  
2 X 1 = 2  2 X 2 = 4  
3 X 1 = 3  3 X 2 = 6  3 X 3 = 9  
4 X 1 = 4  4 X 2 = 8  4 X 3 = 12  4 X 4 = 16  
5 X 1 = 5  5 X 2 = 10  5 X 3 = 15  5 X 4 = 20  5 X 5 = 25  
6 X 1 = 6  6 X 2 = 12  6 X 3 = 18  6 X 4 = 24  6 X 5 = 30  6 X 6 = 36  
7 X 1 = 7  7 X 2 = 14  7 X 3 = 21  7 X 4 = 28  7 X 5 = 35  7 X 6 = 42  7 X 7 = 49  
8 X 1 = 8  8 X 2 = 16  8 X 3 = 24  8 X 4 = 32  8 X 5 = 40  8 X 6 = 48  8 X 7 = 56  8 X 8 = 64  
9 X 1 = 9  9 X 2 = 18  9 X 3 = 27  9 X 4 = 36  9 X 5 = 45  9 X 6 = 54  9 X 7 = 63  9 X 8 = 72  9 X 9 = 81  

¡Esta es la respuesta que queremos!

para resumir

¡Así es como deberían pensar los programadores! Muchos artículos no dirán esto, porque no son programadores reales. ¡Un programador calificado debe tener pensamiento lógico! ¡Resuelve el problema paso a paso! ¡Es la mejor manera!

Cuota

¡Ahora necesitamos fusionar list1 y list2 juntos! ¡Entonces clasifícalo!

list1 = [91, 95, 97, 99]  
list2 = [92, 93, 96, 98]

# 先创建一个list3,这就是空盒子
list3 = list1.copy()
list3.extend(list2)
print(list3)
#从低到高排序
list3.sort()
print(list3)

respuesta:

[91, 95, 97, 99, 92, 93, 96, 98]
[91, 92, 93, 95, 96, 97, 98, 99]

Compartir de nuevo

Sobre la base del intercambio anterior, mejoremos la dificultad. Ahora necesitamos tener una lista de puntajes promedio y puntajes por debajo del promedio. Piénselo todos, ¿qué debemos hacer ahora?

grades_all_students =  [99, 95, 97, 99, 92, 93, 96, 98]  
sum = 0
aver_all_students = []

for i in grades_all_students:
    sum = sum + i
    average = sum/len(grades_all_students)  
    # 上面最好不要去数有几个学生,那样的话,学生数目发生变化就要调代码。
print('平均成绩是:{}'.format(average))

for j in grades_all_students:
    if j < average:
        aver_all_students.append(j) # 少于平均分的成绩放到新建的空列表中
print(' 低于平均成绩的有:{}'.format(aver_all_students))  
# 大家一定要注意一下细节啊!!!
# 一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

#基本语法是通过 {} 和 : 来代替以前的 % 。

#format 函数可以接受不限个参数,位置可以不按顺序。

respuesta:

平均成绩是:96.125
 低于平均成绩的有:[95, 92, 93, 96]

¿Existe una mejor manera de resolver este problema? A continuación, ¿vamos a entrar en contacto con el concepto de bibliotecas?
Los amigos que han visto Dragon Ball deberían entender la verdad. ¡Porque Ku es la cápsula universal en manos de Bouma!

import numpy as np #导入库这个概念!np就是numpy
grades_all_students =  [99, 95, 97, 99, 92, 93, 96, 98]  
#sum = 0
aver_all_students = []
average = np.mean(grades_all_students)#平均成绩
#for i in grades_all_students:
#    sum = sum + i
#    average = sum/len(grades_all_students)    
print('平均成绩是:{}'.format(average))

for j in grades_all_students:
    if j < average:
        aver_all_students.append(j) # 少于平均分的成绩放到新建的空列表中
print(' 低于平均成绩的有:{}'.format(aver_all_students)) 


low_means_grades= np.array(grades_all_students)
print(' 低于平均成绩的有:{}'.format(low_means_grades[low_means_grades<average]))

respuesta:

平均成绩是:96.125
 低于平均成绩的有:[95, 92, 93, 96]
 低于平均成绩的有:[95 92 93 96]

En cuanto a la función numpy, si estás interesado, ¡puedes leer este artículo!

función numpy

para resumir

Aprender es algo alegre, siempre que esté dispuesto a dedicar tiempo y energía. ¡Entonces estoy dispuesto a compartir la alegría de aprender contigo! ¡No hay problemas irresolubles en este mundo! ¡Te atreves a pensar, me atrevo a hacerlo! En el mundo de fantasía de PYTHON, ¡nada es imposible!
¡El próximo número será aún más emocionante! Adios ~

¡Bienvenidos a todos a leer mi "La debilidad de la naturaleza humana" para darles una sensación diferente!

Supongo que te gusta

Origin blog.csdn.net/weixin_46259642/article/details/112407261
Recomendado
Clasificación