while迴圈

DogLeftover發表於2024-03-26
  • 基本使用
"""
迴圈10次 你好
"""
i = 1  # 用來做迴圈變數
while i <= 20:
    print("你好")
    i += 1  # 1,2,3,4,5,6,7,8,9,10,11
print("程式結束")

"""
迴圈10次 你好,並顯示迴圈的次數
"""
i = 1  # 用來做迴圈變數
while i <= 20:
    print(f"你好{i}")
    i += 1  # 1,2,3,4,5,6,7,8,9,10,11
print("程式結束")

"""
迴圈輸出1-20之間的偶數,能被2整除的數就是偶數
"""
i = 1
while i <= 20:
    if i % 2 == 0:
        print(i)
    i += 1  # 1,2,3,4,5,6....20

"""
迴圈輸出1-20之間的偶數,能被2整除的數就是偶數
"""
i = 2
while i <= 20:
    print(i)
    i += 2  # 2,4,6,8,10....20

"""
求1-10的和
"""
s = 0 # 存結果
i = 1
while i <= 10:
    s = s + i
    i += 1  # 1,2,3,4.。。。10
print(s)

"""
4. 編寫一個程式,要求使用者輸入一個正整數,然後使用`while`迴圈判斷這個數是否為質數。
    質數: 只能被1和他自身整除的數,
    方式1:  這個數n分別去除以1...n ,統計能被整除的數個數。
            如果個數=2 就是質數,否則就不是質數
    方式2:   這個數n分別去除以2....n-1,如果發現,中間有數能被n整除,直接退出。
"""
c = 0  # 統計能被整除的數的個數
i = 1  # 迴圈變數. 1,2,3,4,5,6,7....n
n = int(input("請輸入一個正整數:"))
while i <= n:
    if n % i == 0:  # 表示n是否能被i整
        c += 1   # 如果i能被n整除,個數+1
    i += 1  # 1,2,3,4,5...n
if c == 2:
    print(f"{n}是質數")
else:
    print(f"{n}不是質數")
  • 結束迴圈
"""
立即結束當前迴圈,break
輸出1-10的數,遇到3就退出
"""
i = 1
while i <= 10:
    print(f"i={i}")
    if i == 3:
        break
    i += 1

"""
遇到continue,立即結束本次迴圈,進入下一次迴圈
輸出1-10,3或者5不顯示
"""
i = 1
while i <= 10:
    if i == 3 or i == 5:
        i += 1
        continue
    print(i)
    i += 1
  • 案例
"""
計算1-100的偶數
"""
i = 0
sum = 0
while i <= 100:
    sum += i
    i += 2
print(sum)

"""
找出整數的因子(能被該整數整除)
"""
i = int(input("輸入整數"))
j = 1
while j <= i:
    if i%j == 0:
        print(j)
    j += 1
print("結束")

"""
列印斐波那契數列前20個數
1,1,2,3,5,8,13
"""
i = 1
s = 1
a = 0
b = 1
print(s)
while i<=19:
    print(s)
    a = b
    b = s
    s = a+b
    i+=1

"""
編寫一個程式,使用while迴圈,從1開始往上數,列印出第一個能被7整除的數。
"""
i = 1
while i>0:
    if i%7 == 0:
        print(i)
        break
    else:
        i+=1

"""
編寫一個程式,計算出1到100之間所有能被3整除的數的和。
"""
i = 1
s = 0
while i<=100:
    if i%3 == 0:
        s += i
        i+=1
    else:
        i+=1
print(s)

"""
編寫一個程式,統計100以內個位數是2並且能夠被3整除的數的個數。
"""
i = 1
s = 0
while i<=100:
    if i%10 == 2 and i%3 == 0:
        print(i)
        s += 1
        i+=1
    else:
        i+=1
print(s)

"""
編寫一個程式,輸入任意一個正整數,求它是幾位數
"""
i = int(input("輸入正整數"))
s = 0
while i != 0:
    i = i // 10
    s += 1
print(s)

"""
編寫一個程式,輸入任意一個正整數,求每一位相加的和 (123 = 1+2+3= 6)
"""
i = int(input("輸入正整數"))
j = 0
while i != 0:
    j += i % 10
    i = i // 10
print(j)

"""
列印1000以內所有的水仙花數
(水仙花數是三位數,其各位數字立方和等於該數本身)
"""
a = 100
while a <= 1000:
    i = a
    j = 0
    s = 0
    while i != 0:
        j = i % 10
        s += j * j * j
        i = i // 10
    if s == a:
        print(a)
    a += 1

"""
編寫一個程式,使用while迴圈,計算並列印出1到100之間所有奇數的和。
用 continue完成
不用continue完成
"""
i = 0
s = 0
while i < 100:
    i += 1
    if i%2 == 0:
        continue
    s += i
print(s)

i = 1
s = 0
while i <= 100:
    if i%2 != 0:
        s += i
    i += 1
print(s)

"""
編寫一個程式,使用while迴圈,計算並列印出1到100之間所有能被3整除但不能被5整除的數。
用continue完成
不用continue完成
"""
i = 0
while i < 100:
    i += 1
    if i%3 != 0 or i%5 == 0:
        continue
    print(i)

i = 0
while i <= 100:
    if i%3 == 0 and i%5 != 0:
        print(i)
    i += 1

"""
編寫一個程式,使用while循迴圈,接收使用者輸入的數字,如果使用者輸入的數字為0,結束迴圈,列印出使用者輸入的所有數字的和。
"""
s = 0
while 1 > 0:
    i = int(input("輸入數字:"))
    if i == 0:
        break
    s += i
print(s)

"""
編寫一個程式,判斷給定的整數n是否為素數
"""
i = int(input("輸入數:"))
a = 1
s = 0
while a <= i:
    if i%a == 0:
        s += 1
    a += 1
if s > 2:
    print("不是素數")
else:
    print("是素數")

"""
使用者輸入賬號密碼,如果輸入不正確從新輸入,直到輸入正確為止。(賬號密碼都為:admin)
"""
i = 1
while i > 0:
    name = input("請輸入使用者名稱:")
    pwd = input("請輸入密碼:")
    if name == "admin" and pwd == "admin":
        print("輸入正確")
        i = 0
    else:
        print("使用者名稱或密碼錯誤,請重新輸入")

"""
使用者輸入賬號密碼,如果輸入不正確從新輸入,輸入3次錯誤,就提示賬號鎖定並結束。(賬號密碼都為:admin)
"""
i = 1
s = 0
while i > 0:
    if s < 3:
        name = input("請輸入使用者名稱:")
        pwd = input("請輸入密碼:")
        if name == "admin" and pwd == "admin":
            print("輸入正確")
            i = 0
        else:
            s += 1
    else:
        print("輸入3次錯誤,賬號鎖定")
        break

相關文章