ejercicios de aprendizaje de python

1. Calcula el área y el perímetro de un triángulo.

a,b,c=(int(x) for x in input().split())
if a+b>c and a+c>b and b+c>a:
     s=(a+b+c)/2
     area=(s*(s-a)*(s-b)*(s-c))**0.5
     perimeter=a+b+c
     print("area={:,.2f};perimeter={:,.2f}".format(area,perimeter))
else:
     print("These sides do not correspond to a valid triangle")

Nota: formato de entrada y salida, formato y posiciones decimales

2. Para alentar a los residentes a ahorrar agua, la compañía de agua adopta un método de fijación de precios escalonado basado en el consumo de agua. Los residentes deben pagar la tarifa de agua y (yuanes) relacionada con el consumo mensual de agua x (toneladas): cuando x no exceda las 15 toneladas , y = 4x / 3; después de exceder, y = 2.5x − 17.5. Escriba un programa para calcular la tarifa del agua.

x=int(input())
if x<=15:
     y=(4*x)/3
else:
     y=2.5*x-17.5
print("%.2f"%y)

Nota: el método de control del punto decimal en print ()

3. Los estudiantes de primaria y secundaria deben someterse a un examen físico cada semestre y se debe medir su estatura, porque la estatura puede reflejar el estado de crecimiento de sus hijos. Ahora que se ha medido la altura de una clase, proporcione las alturas que superan la altura media. La entrada del programa es una línea de datos separados por espacios y cada dato es un número entero positivo. El programa necesita generar aquellos valores de entrada que exceden el número promedio de enteros positivos de entrada, con un espacio después de cada número, y el orden de salida es el mismo que el de la entrada.

sum=0
b=[]
a=[int(x) for x in input().split()]
for x in a:
     sum=sum+x
average=sum/len(a)
for x in a:
     if x>average:
          b.append(x)
for value in b:
     print(value,end=" ")

Nota: (1) Uso de la lista (2) Leer varios datos en una línea

4. Encuentra el carácter especificado

find=input()
v=input()
l=list(v)
if find in l:
     print("index={}".format(l.index(find)))
else:
     print("Not Found")

Nota: No es necesario utilizar bucles, debe ser bueno en el uso de algunas de las funciones que vienen con python.

5. Ingrese una cadena, luego ingrese dos caracteres y busque el índice de estos dos caracteres en la cadena. Entrada: ingrese la cadena en la primera línea e ingrese dos caracteres en la segunda línea, separados por espacios. Salida: carácter e índice de salida inversos, es decir, el último se emite primero. Uno por línea.

s = input()
a , b = input().split()
la=range(len(s))     #range(0,11)
lb = lista[::-1]     #字符串反转
for i in lb:
    if s[i] == a or s[i] == b:
        print(i,s[i])

6. Problema de verificación de la tarjeta de identificación. Un número de identificación legal se compone de un área de 17 dígitos, un número de fecha y un número de secuencia más un código de verificación. Las reglas de cálculo del código de verificación son las siguientes:

Primero, se ponderan y suman los primeros 17 dígitos, y la distribución del peso es: {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4, 2}; Entonces la suma calculada es módulo 11 para obtener el valor Z; finalmente el Zvalor correspondiente y el valor del código de verificación de acuerdo con la siguiente relación M: Z: 0 1 2 3 4 5 6 7 8 9 10
M: 1 0 X 9 8 7 6 5 4 3 2

a=[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]#加权
s=input()#输入身份证字符串
numbers=list(s)
#numbers=[x for x in list(s)]#将身份证的字符串转化为数字
#另一种方法是numbers=list(map(int,list(a))
sum=0
for i in range(0,17):
     c=a[i]*numbers[i]
     sum=sum+c
     value=sum%11#计算得到校验码Z值,身份证后面的是Z对应的M


#判断身份证格式是否正确
z=[0,1,2,3,4,5,6,7,8,9,10]
m=[1,0,'X',9,8,7,6,5,4,3,2]#校验码
mp=dict(zip(m,z))#将mz转化为字典,一一对应


#判断校验码是否正确
if mp.get(value)==numbers[len(numbers)-1]:
     print("校验码正确")

Esta pregunta no se ha completado, continuará.

7. Conversión de cadenas. Ingrese una cadena que no exceda los 80 caracteres y termine con un retorno de carro en una línea. Imprima el entero convertido en una línea. El título garantiza que la salida no exceda el rango de enteros largos. Por ejemplo, free82jeep5 generará 825.

c=[]
answer=''
s=input()
lists=list(s)
numbers=list("0123456789")
for i in range(0,len(lists)):
     if lists[i] in numbers:
          c.append(lists[i])

for j in range(0,len(c)):
	answer=answer+c[j]
          
print(answer)

8. Encuentre la suma de los primeros N términos en la secuencia intercalada. Esta pregunta requiere escribir un programa para calcular la suma de los primeros N elementos de la secuencia intercalada 1-2 / 3 + 3 / 5-4 / 7 + 5 / 9-6 / 11 + ... 2019.11.16 más

n=int(input())
sum=0#初始化
p=0
q=-1
flag=1#控制符号的变化
for i in range(1,n+1):
    p+=1#分子
    q+=2#分母
    sum=sum+p/q*flag
    flag=-flag

print("{:,.3f}".format(sum))#格式化输出

9. Genere el mismo número de n dígitos para cada dígito. Por ejemplo, entrada 1,5 salida 11111, entrada 3,4 salida 3333 (tenga en cuenta que hay un espacio antes de 3)

number=input()#字符串
s=number.split(',')
n=int(s[1])
print(s[0]*n)

Al principio, mi código era así. El primer conjunto de pruebas pasó, pero el segundo falló. Más tarde, me enteré de la función strip () y el problema se resolvió. Las siguientes dos líneas de código fueron escritas por otros.

a,b = input().strip().split(',')
print(a.strip()*int(b))

10.

Supongo que te gusta

Origin blog.csdn.net/weixin_44961794/article/details/102992224
Recomendado
Clasificación