python循环结构试题

 Demo01

import random
ret = random.randint(0,101)
while 1 :
  number = int(input("请输入一个0-100之间的数:"))
  if ret == number :
	   print("你猜的数字正确!")
	   break
  elif ret > number :
	   print("你猜的数字太小!")
  elif ret < number :
	   print("你猜的数字太大!")	


运行结果:

 

  

Demo02

n1,n2 = eval(input("请输入两个整数:"))
if n1 > n2 :
	best = n1
else :
	best = n2
for k in range(1,best+1) :
    if n1 % k == 0	and n2 % k == 0 :	
       gcd = k
    if k == best :
        print("最大公约数为:%s"%gcd)

运行结果:

 

Demo03

g = 0
w = 0
sum = 0
c = 0
for i in range(1,50) :
       c += 1
       number2 = int(input("请输入整数:"))
       sum += number2
       if number2 == 0 :
              break
       if number2 > 0 :
          g += 1 
       elif number2 < 0 :
          w += 1
print("正数的个数为%s"%g)          
print("负数的个数为%s"%w)
print("总和为:%s"%sum)
print("平均数为:%s"%(sum / c))

运行结果:

Demo04

for i in range(2001 , 2101) :
    if (i % 4 == 0 and i % 100 != 0) or i % 400 == 0 :
         print(" ",i,end="")  #不换行输出
         if(i % 40 == 0): 
            print( )  

运行结果:

 

Demo05

number = int(input("请输入一个十进制整数:"))
s = ''
while number != 0 :
	s += str(number % 2)
	number = number // 2
print(s[::-1])

运行结果:

Demo06

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

运行结果:

Demo07

s = 0
i = int(input("i = "))
for i in range(1,i + 1) :
	s = s + 1 / (2 * i -1)
	s = - s
print("π = ",abs(4 * s))

运行结果:

Demo08

e = 1
item = 1
i = int(input("i = "))
for i in range(1,i + 1) :
	e = e + item
	item = item / i 
print("e = ",e)

 运行结果:

Demo09

for x in range(2,10000) :
	s = 0
	for i in range(1,x) :
		if x % i == 0 :
			s += i
	if s == x :
		print(x)

  运行结果:

Demo10

max1 = 0
cout = 0
while 1 :
   number = int(input("请输入整数:"))
   if number == 0 :
   	  break
   if number > max1 :
   	  cout = 0
   if number > max1 :
     max1 = number
   if number == max1 :
   	 cout += 1
print("最大值为:",max1)  
print("最大值出现的次数为:",cout)

运行结果:

Demo11

import random
number1 = 0
number2 = 0
while number1 < 2 and number2 < 2 :
     n = int(input("请你输入0,1或2:"))
     r = random.randint(0,2)
     print("程序给的随机数为:%s"%r)
     if n == r:
	     print("平局")
     elif (n == 0 and r == 1) or (n == 1 and r == 2) or (n == 2 and r == 0):
       number2 += 1
       print("你输了")
     elif (n == 0 and r == 2) or ( n == 1 and r == 0) or (n == 2 and r == 1) :
       number1 += 1
       print("你赢了")    
if  number == 2 :
	 print("你赢了")

运行结果:

 

Demo12

模式A:
for i in range(1,7) :
	for j in range(1,7) :
		if j <= i :
		   print(j,end=' ');
	print( )

运行结果:

模式B:
for i in range(6,0,-1) :
	for j in range(1,7) :
		if j <= i :
			print(j,end=' ');
	print( )

运行结果:

模式C:
for i in range(1,7) :
	for j in range(6,0,-1) :
		if j <= i :
			print(j,end=" ");
		else :
			print(" ",end=" ")
	print( )

运行结果:

模式D:
for i in range(6,0,-1) :
	print(" "*(6-i),end='')
	for j in range(1,7) :
		if j <= i :
			print(j,end='');
	print( )

运行结果:

Demo13

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

运行结果:

Demo14

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

运行结果:

Demo15

cout = 0
for number in range(2,1001) :
	for i in range(2,number) :
		if number % i == 0 :
			break
	else :
		print(number,end="\t")
		cout += 1
		if cout % 8 == 0 :
			print( )

运行结果:

Demo16

number = int(input("请输入一个十进制整数:"))
hexstr = ""
while number != 0 :
	a = number % 16 
	if a < 10 :
		hexstr += str(a)
	else :
		hexstr += chr(55+a)
	number //= 16
print(hexstr)

运行结果:

Demo17

import random
cout = 0
total = 1000000
for i in range(1,total+1) :
    x = random.random() * 2 - 1
    y = random.random() * 2 - 1
    d = (x ** 2 + y ** 2) ** 0.5
    if d <= 1 :
    	cout += 1
pi = 4 * cout / total
print("pi=",pi)

运行结果:

Demo18

import random
cout = 0
total = 1000000
for i in range(1,total+1) :
    x = random.random() * 2 - 1
    y = random.random() * 2 - 1
    k = y / (x-1)
    if x < 0 or (x > 0 and y > 0 and k<-1 ) :
    	cout += 1
p =  cout / total
print(p)

 运行结果:

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: while循环Python中的一种控制流语句,用于在满足特定条件的情况下反复执行一段代码。下面是关于while循环的期末试题的回答。 题目:使用while循环,编写一个程序,输出1到10之间的所有奇数。 解答: 我们可以使用while循环和条件判断来解决这个问题。首先,我们定义一个变量i,将它初始化为1,代表从1开始计数。然后,我们使用while循环来检查条件,即i是否小于等于10。如果满足条件,我们执行一段代码:判断i是否为奇数,如果是,我们将其输出。最后,我们对i进行自增运算,使其递增1,继续检查下一个数。 代码如下: ``` i = 1 # 初始化计数器 while i <= 10: # 判断条件 if i % 2 == 1: # 判断奇数 print(i) # 输出奇数 i += 1 # 计数器递增 ``` 通过运行这段代码,我们可以得到输出结果:1, 3, 5, 7, 9,这是1到10之间的所有奇数。 总结: 利用while循环的特点,我们可以在满足特定条件的情况下,反复执行一段代码。这个循环结构在解决需要多次迭代的问题时非常有用。在上述例子中,我们使用while循环输出了1到10之间的所有奇数。这个例子展示了while循环的基本用法,可以通过设置条件和控制变量来控制循环的执行次数。 ### 回答2: while循环Python中的一种迭代结构,它允许我们重复执行一段代码块,直到满足特定条件时终止循环。 在期末试题中,我们可能会遇到使用while循环解决问题的情况。例如,假设试题要求我们编写一个程序,计算一个正整数的阶乘。 首先,我们可以使用input()函数获取用户输入的正整数,存储在一个变量中。然后,我们可以使用一个变量来记录阶乘的结果,初值设为1。接下来,我们可以使用一个计数器变量来表示当前要计算的数的值,初值设为输入的正整数。 在使用while循环计算阶乘时,我们可以将阶乘的计算公式放在循环内部。每次循环,我们将计数器变量乘以阶乘结果,并将计数器变量的值减1,直到计数器变量的值小于等于0时循环终止。 最后,我们可以通过print()函数输出计算得到的阶乘结果。 以下是一个简单的例子: ```python num = int(input("请输入一个正整数: ")) result = 1 counter = num while counter > 0: result *= counter counter -= 1 print("阶乘结果为:", result) ``` 在期末试题中,可能会有其他需要使用while循环解决的问题。不同的题目会有不同的要求和限制,需要根据题目的具体要求来编写相应的代码。 希望以上回答能帮助你理解while循环在期末试题中的应用。如果有任何问题,请随时追问。 ### 回答3: while循环Python中一种常用的循环结构,它的语法格式为: while 条件: 循环体 在条件满足的情况下,循环体将会被重复执行。直到条件不满足时,循环才会结束。 在期末试题中,我们可以使用while循环解决一些循环类的问题。以下是一个例子: 假设要求编写一个程序,计算从1到某个整数n之间的所有偶数的和。可以使用while循环来实现: sum = 0 # 初始化和为0 i = 1 # 从1开始 while i <= n: if i % 2 == 0: # 判断是否为偶数 sum += i # 加到和中 i += 1 # i加1,继续下一个数 print("从1到", n, "之间的所有偶数的和为:", sum) 以上代码通过循环将从1到n的整数都依次判断是否为偶数,如果是则加到sum变量中。最后输出结果。 在期末试题中,可能还会涉及到一些其它的使用循环的问题,如遍历列表、查找元素等。使用while循环可以有效地解决这些问题。在编写代码时,要注意循环条件的设置和循环变量的更新,以确保循环能够正确跳出,避免死循环的情况。 通过灵活运用while循环,在期末试题中可以解决各种循环类的问题,提高编程的效率和准确性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值