for循環例題答案---python

1、求一個數是否是質數(素數)?
2、求50~150之間的質數是那些?
1,2是同一個題,會2就會1,直接輸出2把

index = 50
while index <= 150:
    s = 2
    while s < index:
        if index % s == 0:
            break
        s += 1
        if s > index/2 :
            print(index)
            break
    index += 1

執行結果:
在這裏插入圖片描述
3、使用循環完成如下圖案的打印

*
**
***
****
*****


   *
  ***
 *****
*******


   *
  * *
 *   *
*******

   *
  ***
 *****
*******
 *****
  ***
   *


   *
  * *
 *   *
*     *
 *   *
  * *
   *


   *
  ***
 * * *
*******
 * * *
  ***
   *		
#   *
#  ***
# ***** 
#*******
n = int(input("請輸入需要打印的行數:"))
for i in range(1,n+1):
    for j in range(1,n-i+1):
        print(" ",end="")
    for k in range(1,2*i):
        print("*",end="")
    print()##換行

在這裏插入圖片描述
2.

#      *
#	  * *
#	 *   *
#	*******
n = int(input("請輸入需要打印的行數:"))
for i in range(1,n+1):
    if i < n :
        for j in range(1,n-i+1):
            print(" ",end="")
        for k in range(1,2*i):
            if k == 1 or k == 2*i -1 :
                print("*",end = "")
            else :    
                print(" ",end="")
    else :
        for z in range(1,2*n):  
            print("*",end = "")
    print()##換行

在這裏插入圖片描述
3.

##菱形,採用的是上下分別輸出的形式,這個最容易想到
n = int(input("請輸入需要打印的行數:"))
while n %2 == 0 or n < 2:
    n = int(input("輸入錯誤大於2行,且爲奇數行,請重新輸入:"))
for i in range(1,n//2 + 2):
    for j in range(1,n//2 + 2-i):
        print(" ",end = "")
    for k in range(1,2*i):
        print("*",end = "")
    print("")
for m in range(1,n//2+1):
    for a in range(1,m+1):
        print(" ",end = "")
    for b in range(1,2*(n//2+1-m)):
        print("*",end="")
    print("")

在這裏插入圖片描述
4.

n = int(input("請輸入需要打印的行數:"))
while n %2 == 0 or n < 2:
    n = int(input("輸入錯誤大於2行,且爲奇數行,請重新輸入:"))
for i in range(1,n//2+2):
    for j in range(1,n//2 + 2-i):
        print(" ",end = "")
    for k in range(1,2*i):
        if k == 1 or k == 2*i-1:
            print("*",end = "")
        else:
            print(" ", end = "" )
    print("")
for m in range(1,n//2+1):
    for a in range(1,m+1):
        print(" ",end = "")
    for b in range(1,2*(n//2+1-m)):
        if b == 1 or b == (2*(n//2+1-m)-1):
            print("*",end="")
        else:
            print(" ",end = "")
    print("")            

在這裏插入圖片描述
5.

n = int(input("請輸入需要打印的行數:"))
while n %2 == 0 or n < 2:
    n = int(input("輸入錯誤大於2行,且爲奇數行,請重新輸入:"))
for i in range(1,n//2+1):
    for j in range(1,n//2 + 2-i):
        print(" ",end = "")
    for k in range(1,2*i):
        if k == 1 or k == 2*i-1 or k == i :
            print("*",end = "")
        else:
            print(" ", end = "" )
    print("")
for c in range(1,n+1):
    print("*",end="")
print("")
for m in range(1,n//2+1):
    for a in range(1,m+1):
        print(" ",end = "")
    for b in range(1,2*(n//2+1-m)):
        if b == 1 or b == (2*(n//2+1-m)-1) or b == n//2+1-m :
            print("*",end="")
        else:
            print(" ",end = "")
    print("")            

在這裏插入圖片描述
4、完整計算器程序
用戶輸入第一個數據
用戶輸入操作符號
用戶輸入第二個數據
運算展示結果

# 接收控制檯上用戶輸入的數據
num1 = float(input("請輸入第一個數:"))
op = input("請輸入您要運算的符號(+、-、*、/、%、//、**):")
num2 = float(input("請輸入第二個數:"))
# 數據運算
if op == "+":
	print("%s + %s = %s"%(num1, num2, (num1 + num2)))
elif op == "-":
	print("%s - %s = %s" %(num1, num2, (num1 - num2)))
elif op == "*":
	print("%s * %s = %s" %(num1, num2, (num1 * num2)))
elif op == "/":
	print("%s / %s = %s" %(num1, num2, (num1 / num2)))
elif op == "%":
	print("%s %% %s \\n= %s " %(num1, num2, (num1 / num2)))

在這裏插入圖片描述

5、一個自然數與3的和是5的倍數,與3的差是6的倍數,這個自然數最小是幾?

##自然這個數是比6大的,故從6開始,並且我輸出了滿足這個條件的10個數字
num = 6 
count = 0
while True:
    if (num+3)%5==0 and (num-3)%6==0:
        print("這個數最小是:",num)
        count +=1
        num += 1
        if count == 10:
            break
    else:
        num += 1

在這裏插入圖片描述

6、在400–500之間求一個數,它被2除餘1,被5除餘3,被9除餘1,這個數是多少?

##while實現
i = 400 
while i <= 500:
    if i%2 == 1 and i%5 == 3 and i%9 == 1:
        print(i)
        break
    else:
        i += 1
##for實現
for m in range(400,501):
    if m%2 == 1 and m%5 == 3 and m%9 == 1:
        print(m)

在這裏插入圖片描述
7、有一些四位數,百位數字都是3,十位數字都是6,並且它們既能被2整除,又能被3整除,求這樣的四位數中最大的和最小的兩數各是幾?

#這裏我採用了列表來存儲滿足的數字
ls = [] 
for i in range(1,10):
    for j in range(1,10):
        num = int(str(i)+"36"+str(j))
        if num%2 ==0 and num %3 ==0:
            ls.append(num)
ls.sort()#對數字進行排序,其實沒有必要排序,第一個最小,最後一個最大。
print("滿足要求的數字有:",ls)
print("最小值:{}最大值:{}".format(ls[0],ls[len(ls)-1])

在這裏插入圖片描述
以上內容僅供參考,個人代碼可以優化,供沒有思路的朋友參考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章