1. 程式人生 > >《Python編程快速上手+讓繁瑣工作自動化》第三章實踐項目

《Python編程快速上手+讓繁瑣工作自動化》第三章實踐項目

val bre ror try 函數 什麽 實踐項目 字符串 驚奇

1 Collatz 序列
  編寫一個名為 collatz()的函數,它有一個名為 number 的參數。如果參數是偶數,那麽 collatz()就打印出 number // 2,並返回該值。如果 number 是奇數,collatz()就打印並返回 3 * number + 1。
  然後編寫一個程序,讓用戶輸入一個整數,並不斷對這個數調用 collatz(),直到函數返回值1(令人驚奇的是,這個序列對於任何整數都有效,利用這個序列,你遲早會得到 1!既使數學家也不能確定為什麽。你的程序在研究所謂的“Collatz序列”,它有時候被稱為“最簡單的、不可能的數學問題”)。

代碼如下:

# -*- coding:utf-8
-*- def colatz(number): if number % 2 == 0: return number/2 else: return 3 * number + 1 while True: number = int(input(please enter number:)) if colatz(number) == 1: print(colatz(number)) break else: print(colatz(number))

2.

輸入驗證:在前面的項目中添加 try 和 except 語句,檢測用戶是否輸入了一個非整數的字符串。正常情況下,int()函數在傳入一個非整數字符串時,會產生 ValueError 錯誤,比如 int(‘puppy‘)。在 except 子句中,向用戶輸出一條信息,告訴他們必須輸入一個整數。

# -*- coding:utf-8 -*-
def colatz(number):
    if number % 2 == 0:
        return number/2
    else:
        return 3 * number + 1

while True:
    try:
        number = int(input(‘please enter number:‘))
        if colatz(number) == 1:
            print(colatz(number))
            break
        else:
            print(colatz(number))
    except ValueError:
        print(‘請輸入整數‘)

  

《Python編程快速上手+讓繁瑣工作自動化》第三章實踐項目