《Python核心編程》第2章 快速入門 練習

2–3. 數值和運算符

啓動交互解釋器,使用 Python對兩個數值(任意類型)進行加、減、乘、除運算。然後使用取餘運算符來得到兩個數相除的餘數, 最後使用乘方運算符求A 數的B 次方。

# coding=utf-8
__author__ = 'Ibuki Suika'
print(1 + 2)
print(2 - 1)
print(3.0 * 1.2)
print(3.0 / 2)
print(3 % 2)
print(2 ** 10)

2–4. 使用raw_input()函數得到用戶輸入
(a) 創建一段腳本使用 raw_input() 內建函數從用戶輸入得到一個字符串,然後顯示這個用戶剛剛鍵入的字符串。
(b) 添加一段類似的代碼,不過這次輸入的是數值。將輸入數據轉換爲一個數值對象,(使用 int()或其它數值轉換函數) 並將這個值顯示給用戶看。(注意,如果你用的是早於1.5的版本,你需要使用 string.ato*() 函數執行這種轉換)

# coding=utf-8
__author__ = 'Ibuki Suika'
s = raw_input('please input a string: ')
print('the string you input: %s' % s)
i = int(raw_input('please input an integer: '))
print('the integer you input: %d' % i)

2–5. 循環和數字
分別使用while 和for 創建一個循環:
(a) 寫一個while 循環,輸出整數從0 到10。(要確保是從0 到10, 而不是從0 到9 或從1 到10)
(b) 做同 (a) 一樣的事, 不過這次使用 range() 內建函數。

# coding=utf-8
__author__ = 'Ibuki Suika'
i = 0
while i <= 10:
    print i,
    i += 1

print
for i in range(11):
    print i,

2–6. 條件判斷

判斷一個數是正數,還是負數, 或者等於 0. 開始先用固定的數值,然後修改你的代碼支持用戶輸入數值再進行判斷。

# coding=utf-8
__author__ = 'Ibuki Suika'
num = input('please input an integer: ')
if num == 0:
    print('zero')
elif num % 2 != 0:
    print('odd')
else:
    print('even')

2–7.循環和字串

從用戶那裏接受一個字符串輸入,然後逐字符顯示該字符串。先用while 循環實現,然後再用 for 循環實現。

# coding=utf-8
__author__ = 'Ibuki Suika'
s = raw_input('please input a string: ')
i = 0
while i < len(s):
    print(s[i])
    i += 1

for ch in s:
    print(ch)

2–8. 循環和運算符

創建一個包含五個固定數值的列表或元組,輸出他們的和。然後修改你的代碼爲接受用戶輸入數值。 分別使用while 和for 循環實現。

# coding=utf-8
__author__ = 'Ibuki Suika'
s = input('please input a tuple: ')
i = 0
total = 0
while i < len(s):
    total += s[i]
    i += 1
print(total)

total = 0
for v in s:
    total += v
print(total)

2–9.循環和運算符

創建一個包含五個固定數值的列表或元組,輸出他們的平均值。本練習的難點之一是通過除法得到平均值。 你會發現整數除會截去小數,因此你必須使用浮點除以得到更精確的結果。 float()內建函數可以幫助你實現這一功能。

# coding=utf-8
__author__ = 'Ibuki Suika'
s = input('please input a tuple: ')
i = 0
total = 0
for v in s:
    total += v
average = float(total) / len(s)
print(average)

2–10.帶循環和條件判斷的用戶輸入

使用raw_input()函數來提示用戶輸入一個1 和100 之間的數,如果用戶輸入的數滿足這個條件,顯示成功並退出。否則顯示一個錯誤信息然後再次提示用戶輸入數值,直到滿足條件爲止。

# coding=utf-8
__author__ = 'Ibuki Suika'
num = 0
while True:
    num = int(raw_input('please input an integer between 1 and 100: '))
    if 1 <= num <= 100:
        print('succeed')
        break
    else:
        print('out of bound')

2–11.帶文本菜單的程序

寫一個帶文本菜單的程序,菜單項如下(1)取五個數的和 (2) 取五個數的平均值....(X)退出。由用戶做一個選擇,然後執行相應的功能。當用戶選擇退出時程序結束。這個程序的有用之處在於用戶在功能之間切換不需要一遍一遍的重新啓動你的腳本。(這對開發人員測試自己的程序也會大有用處)

# coding=utf-8
__author__ = 'Ibuki Suika'


def menu():
    print('1. Sum')
    print('2. Average')
    print('3. Exit')
    choose = input('select: ')
    return choose


def total(tt):
    s = 0
    for v in tt:
        s += v
    return s


def average(tt):
    return float(total(tt)) / len(tt)

while True:
    choose = menu()
    if choose != 3:
        t = input('please input a tuple: ')
        if choose == 1:
            print(total(t))
        else:
            print(average(t))
    else:
        break

2–15. 元素排序
(a)讓用戶輸入三個數值並將分別將它們保存到3個不同的變量中。不使用列表或排序算法,自己寫代碼來對這三個數由小到大排序。

(b)修改(a)的解決方案,使之從大到小排序

# coding=utf-8
__author__ = 'Ibuki Suika'

a = input('a=')
b = input('b=')
c = input('c=')

if a > b:
    a, b = b, a
if b > c:
    b, c = c, b
if a > b:
    a, b = b, a
print a, b, c

if a < b:
    a, b = b, a
if b < c:
    b, c = c, b
if a < b:
    a, b = b, a
print a, b, c





發佈了40 篇原創文章 · 獲贊 8 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章