《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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值