python循环语句练习题

demo 01

在这里插入图片描述

import random
computer_number = random.randint(0,100)
print("\t\t欢迎来到猜数字游戏!")
person_number = int(input("请输入0-100的数字:"))
while computer_number != person_number :
	if person_number < computer_number :
		print("您猜的数字小了!")
		person_number = int(input("请重新猜测:"))
	if person_number > computer_number :
		print("您猜测的数字大了!")
		person_number = int(input("请重新猜测:"))
print("您终于猜对了!")

在这里插入图片描述

demo 02

n1,n2 = eval(input("请输入两个数"))
if n1 > n2 :
	little = n2
elif n1 < n2 :
	little = n1
else :
	print("最大公约数为:"+str(n1))
	exit(0)
for i in range(1,little + 1) :
	if n1 % i == 0 and n2 % i == 0:
		GCD = i
print("最大公约数为:"+str(GCD))
"""
# 利用min()函数
num1,num2 = eval(input("请个输入两个数:"))
little = min(num1,num2)
for i in range(1,little + 1) :
	if num1 % i == 0 and num2 % i == 0 :
		GCD = i
print("最大公约数为:",GCD)
"""

在这里插入图片描述

demo 03

在这里插入图片描述

import random
import math
n = 1
numberOfHits = 0
while n <= 1000000 :
	x = random.uniform(0,1)
	y = random.uniform(0,1)
	length = math.sqrt(x**2 + y**2)
	if length <= 1 :
		numberOfHits += 1
	n += 1
PI = 4 * numberOfHits / 1000000
print("π的值为:",PI)

在这里插入图片描述

demo 04

在这里插入图片描述

demo 05

在这里插入图片描述

sum = 0
i = 0
j = 0
n = 1
time  = -1
while n != 0 :
    time += 1
    n = int(input("请输入数据:"))
    sum += n
    if n > 0 :
        i += 1
    elif n < 0 :
        j += 1
average = sum / time
print("正数的个数为:%s\n负数的个数为:%s"%(i,j))
print("总共有%s个数\n平均数为:%s"%(time,average))

在这里插入图片描述

demo 06

在这里插入图片描述

n = int(input("请输入一个整数:"))
i = 2 
while True:
    if n%i == 0:
        print(i,end=",")
        n /= i
    else:
        i += 1
    if n == 1:
        break

在这里插入图片描述

demo 07

在这里插入图片描述

height = int(input("需要的打印金字塔的高度:"))
for i in range(0,height) :
    empty = height - i - 1
    for j in range(0,empty) :
        print('  ',end = "")
    number = 2 * (i + 1) - 1
    left = i + 1
    for k in range(left,0,-1) :
        print(k,end = " ")    
    for k in range(2,left + 1) :
        print(k,end = " ")
    print('')

在这里插入图片描述

demo 08

在这里插入图片描述

line = int(input("请输入几行:"))
for i in range(0 , line) :
    for j in range(0 , i + 1) :
        print(j + 1,end = " ")
    print('')
print('')
for i in range(0 , line) :
    for j in range(0 , line - i) :
        print(j + 1,end = " ")
    print('')
print('')
for i in range(0 , line) :
    kong = line - i - 1
    for j in range(0 , kong) :
        print('  ',end = "")
    for j in range(i + 1 , 0 , -1) :
        print(j,end = " ")
    print('')
print('')
for i in range(0 , line) :
    for j in range(0 , i) :
        print('  ',end = "")
    for j in range(0 , line - i) :
        print(j + 1,end = " ")
    print('')

在这里插入图片描述

demo 09

在这里插入图片描述

line = int(input("请输入几行"))
for i in range(0 , line) :
    kong = line - i - 1
    for j in range(0 , kong) :
        print('    ',end = "")
    left_number = i + 1
    for j in range(1 , left_number + 1) :
        if 2 ** (j - 1) < 10 :   #if控制一位和两位三位数字之间的间隔
            print(2 ** (j - 1),end = "   ")
        elif 10 <= 2 ** (j - 1) < 100:
            print(2 ** (j - 1),end = "  ")
        else :
            print(2 ** (j - 1),end = " ")
    for j in range(0 , i) :
        x = (2 ** i) * (0.5 ** (j + 1)) #金字塔右边数字
        x = int(x)
        if x < 10 :
            print(x,end = "   ")
        elif 10 <= x < 100 :
            print(x,end = "  ")
        else :
            print(x,end = " ")
    print('')

在这里插入图片描述

demo 10

在这里插入图片描述

n = 0
time = 0
for i in range(2 , 1001) :
    for j in range(1 , i + 1) :
        if i % j == 0 :
            n += 1
    if n == 2 :
        print(i,end = " ")
        time += 1
        if time % 8 == 0 :
            print('')
    else :
        n = 0

在这里插入图片描述

demo 11

在这里插入图片描述

s = 0
i = int(input("请输入i的值:"))
for j in range(0 , i) :
    s += 1 / (1 + 2 * j)
    s *= -1
print("π的近似值:"+str(4 * s))

在这里插入图片描述

demo 12

在这里插入图片描述

s = 1
e = 0
time = 1
i = int(input("请输入次数:"))
while time <= i :
    for j in range(time) :
        s = s * (j + 1)
    time += 1
    e = 1 / s
    s = 1
print("e的近似值是:",e)

在这里插入图片描述

demo 13

在这里插入图片描述

s = 0
for i in range(2 , 1000) :
    for j in range(1 , i) :
        if i % j == 0 :
            s += j
    if s == i :
        print("1000以内的完全数有:",i)
    s = 0

在这里插入图片描述

demo 14

在这里插入图片描述

import random
play1 = 0
play2 = 0
a = ['剪刀','石头','布']
while play1 < 2 and play2 < 2 :
    computer = random.choice(a)   
    person = input("请出剪刀石头布:")
    if person == computer :
        print("平局!")
    elif (person == '剪刀' and computer == '布') or (person == '布' and computer == '石头') or (person == '石头' and computer == '剪刀') :
        play1 += 1
        print("你赢!")
    else :
        play2 += 1
        print("电脑赢!")
if play1 == 2 :
    print("你胜利了!")
else :
    print("呜呜呜~~你输了!")

在这里插入图片描述

demo 15

在这里插入图片描述

number = 1
time = 0
max_number = int(input("请输入数字以0结束:"))
while number != 0 :
    number = int(input("请输入数字以0结束:"))
    if number > max_number :
        time = 0
    if number > max_number :
        max_number = number
    if number == max_number :
        time += 1
print("最大数为:",max_number)
print("一共出现的次数为:",time)

在这里插入图片描述

demo 16

在这里插入图片描述

a = ''
time = 0
number = int(input("请输入一个十进制的数:"))
while number != 1 :
    n = number % 2
    a += str(n)
    time += 1
    number = number // 2
for i in range(time , 0 , -1) :
    print(a[i - 1],end = " ")

在这里插入图片描述

demo 17

在这里插入图片描述

A=int(input('请输入10进制数'))
print("十六进制为{:X}".format(A))

在这里插入图片描述

demo 18

在这里插入图片描述

import random
import math
n = 0
time = 1
while time <= 1000000 :
    x = random.uniform(-10,10)
    y = random.uniform(-10,10)
    if x < 0 :
        n += 1
    elif x > 0 and y > 0 and x + y < 10 :
        n += 1
    time += 1
print("落在奇数区域的概率为:",n / 1000000)

在这里插入图片描述

demo 19

在这里插入图片描述

line = 0
for i in range(2001 , 2101) :
    if (i % 4 == 0 and i % 100 != 0) or i % 400 == 0 :
        print(i,end = " ")
        line += 1
        if line % 10 == 0 :
            print('')

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值