Declaración de bucle de Python preguntas de ejercicio simples y análisis de respuestas

1. El problema aquí es adivinar qué número está almacenado en la computadora. Vas a escribir un programa que genere aleatoriamente un número entre 0 y 100, inclusive. Este programa solicita al usuario que ingrese un número continuamente hasta que coincida con el número generado aleatoriamente. Para cada número ingresado por el usuario, el programa le preguntará si es demasiado alto o demasiado bajo, para que el usuario pueda elegir el siguiente número a ingresar de manera más inteligente.

import random
com = random.randint(0, 100)
while True:
    num = int(input("请输入一个0-100之间的整数: "))
    if num == com:
        print("恭喜你!!!答对了,奖励你一根棒棒糖")
        break
    elif num > com:
        print("你猜的数过大")
    else:
        print("你猜的数过小")

Resultados de la operación:
Insertar descripción de la imagen aquí
2. El máximo común divisor (MCD) de dos números enteros 4 y 2 es 2. El máximo común divisor de los números enteros 16 y 24 es 8. ¿Cómo encontrar el máximo común divisor?Supongamos que los dos números enteros ingresados ​​son nl y n2. Sabes que el número 1 es su divisor común, pero no es su máximo común divisor. Entonces, debes verificar si k (k=2, 3, 4,...) es el divisor común de n1 y n2 hasta que k sea mayor que n1 o n2. Almacene el denominador común en una variable denominada mcd. En el estado inicial, el valor de mcd es 1. Cada vez que se encuentre un nuevo divisor común, asígnelo a mcd. Después de haber probado todos los divisores comunes posibles de 2 a n1 o de 2 a n2, el valor almacenado en mcd es el máximo común divisor.

num1,num2 = eval(input("请输入两个数: "))
a = min(num1,num2)#选取两个数中较小的数
b = max(num1,num2)#选取两个数中较大的数
for gcd in range(0,a+1):#定义公约数在0到较小数之间取
	gcd += 1#定义公约数从0开始,依次加一直到a
	if a % gcd == 0 and b % gcd == 0:#判断a是否能被两数整除
		gcd1 = gcd#若能整除,则将数赋给新数gcd1
	elif a % gcd != 0:
		gcd = gcd#若不能整除,则还是原数
print("%s和%s的最大公约数是: %s"%(num1,num2,gcd1))

Resultados de ejecución:
Insertar descripción de la imagen aquí
3. La simulación Monte Carlo utiliza números aleatorios y probabilidad para resolver problemas. Tiene aplicaciones muy amplias en matemáticas informáticas, física, química y economía. Ahora, veamos un ejemplo de estimación de π mediante la simulación de Monte Carlo.
Primero, dibuja un círculo con un cuadrado circunscrito.
Supongamos que el radio de este círculo es 1. Por tanto, el área del círculo es π y el área del rectángulo
es 4. Genera aleatoriamente un punto dentro de este cuadrado. La probabilidad de que este punto caiga dentro del círculo es
Área del círculo / Área del cuadrado = π / 4.
Escriba un programa para generar aleatoriamente 1.000.000 de puntos dentro del cuadrado y use númeroDeHits para representar el número de puntos que caen dentro del círculo. Por lo tanto, numberOfHits es aproximadamente 1.000.000* (π/4). π se puede aproximar como 4*numberOfHits/1 000 000.

import random
for num in range(0,1000000):#定义选取0到1000000随机数
	x = random.random() * 2 - 1
	y = random.random() * 2 - 1
	a = (x ** 2 + y ** 2) ** 0.5#计算半径
	if a <= 1:#判断是否在圆内
		num += 1
pi = num * 4 / 1000000
print(pi)

Resultados de la ejecución: Insertar descripción de la imagen aquí
4. (Cuente el número de números positivos y negativos y luego calcule el promedio de estos números) Escriba un programa para leer un número no especificado de números enteros y luego determine cuántos números positivos y cuántos de los enteros se han lee números negativos y calcula la suma de estos valores de entrada (sin contar 0), y finalmente obtiene su valor promedio. El programa finaliza con el valor de entrada 0. Muestre este promedio usando un número de punto flotante. A continuación se muestra un ejemplo sencillo de ejecución.
Insertar descripción de la imagen aquí

p = 0 
n = 0
sum = 0
while True:#建立while循环
	num = int(input("请输入数值: "))#定义不断输入数
	if num > 0:#判断是否为正
		p += 1
	elif num < 0:#判断是否为负
		n += 1
	elif num == 0:#只有输入0,才会停止输入数值
		break;
	sum += num
total = p + n#求和
mean = sum / total#求平均值
if total == 0:
	print("不得行")
else:
	print("正数个数是: ",p) 
	print("负数个数是: ",n)
	print("和是: ",sum)
	print("平均数是: ",mean)

Resultados de la ejecución:
Insertar descripción de la imagen aquí
5. (Encontrar todos los factores de un número entero) Escriba un programa para leer un número entero y luego mostrar todos sus factores más pequeños, también llamados factores primos. Por ejemplo: si el número entero de entrada es 120, entonces la salida debería ser la siguiente.
2, 2, 2, 3, 5

n = int(input("输入一个整数: "))
i = 2 #定义从2开始验证是否能整除
print("该数的素因子有: ")
while True:
	if n % i == 0:#定义循环,依次往下除,
		print(i,end = " ")
		n /= i
	else:
		i += 1
	if n == 1:
		break

Resultados de la ejecución:
Insertar descripción de la imagen aquí
6. (Mostrar: una pirámide) Escriba un programa para solicitar al usuario que ingrese: un número entero entre 1 y 15, y luego muestre una pirámide. La operación de muestra es la siguiente.
Insertar descripción de la imagen aquí

n = int(input("请输入你要打印的行数: "))
for i in range(0,n):
	spce_num = n - i
	for k in range(0,spce_num):#定义空格数
		print(" ",end="")
	for j in range(-i,i+1):
		print(abs(j)+1,end="")'''从负数开始取,加个绝对值+1可以达到题目的效果
		例:若i=2(表示第3行),则取-2到2为,加绝对值+1则为3,2,1,2
		,3'''
	print("")

Resultados de la ejecución:
Insertar descripción de la imagen aquí
7. (Utilice bucles para mostrar cuatro modos) Utilice bucles anidados para mostrar los siguientes cuatro modos en cuatro programas independientes.
Insertar descripción de la imagen aquí
Código modo A
:

n = int(input("请输入你要打印的行数: "))
for i in range(1,n+1):
	spce_num = n - i
	for k in range(spce_num,0):
		print(" ",end="")
	for j in range(1,i+1):
		print(j,end=" ")
	print("")

Resultados de ejecución: Código
Insertar descripción de la imagen aquí
modo B
:

n = int(input("请输入你要打印的行数: ")) 
for i in range(n,0,-1):
	spce_num = n - i
	for k in range(spce_num,0):
		print(" ",end="")
	for j in range(1,i+1):
		print(j,end=" ")
	print("")

Resultados de ejecución: Código
Insertar descripción de la imagen aquí
modo C
:

n = int(input("请输入你要打印的行数: "))
for i in range(1,n+1):
	spce_num = n - i
	for k in range(0,spce_num):
		print(" ",end="")
	for j in range(i,0,-1):
		print(j,end="")
	print("")

Resultados de ejecución: Código
Insertar descripción de la imagen aquí
modo D
:

n = int(input("请输入你要打印的行数: "))
for i in range(n,0,-1):
	spce_num = n - i
	for k in range(0,spce_num):
		print(" ",end="")
	for j in range(1,i+1):
		print(j,end="")
	print("")

Resultados de la ejecución:
Insertar descripción de la imagen aquí
8. (Mostrar números en modo piramidal) Escriba un bucle for anidado para mostrar el siguiente resultado.
Insertar descripción de la imagen aquí
Código:

n = int(input("请输入你要打印的行数: "))
for i in range(0,n):
	spce_num = n - i
	for k in range(spce_num,0,-1):
		print("",end="\t")
	for j in range(1,i+1):
		print(2 ** (j-1),end="\t")
	for k in range(i+1,0,-1):
		print(2 ** (k-1),end="\t")
	print()

resultado de la operación:
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/Nirvana92/article/details/124226988
Recomendado
Clasificación