Python核心编程 课后练习 第二章

2.4 使用raw_input()函数得到用户输入.

  (a) 创建一段脚本使用raw_input()函数从用户输入得到一个字符串, 然后显示这个用户杠杠输入的字符串.

    #coding = utf-8

    str1 = raw_input("Enter a string please -->")

    print "The string you just entered is: %s" %str1

  (b)添加一段类似的代码, 不过这次输入的数值....

    # coding = utf-8

    num = int(raw_input("Enter a number please -->"))

    print "The number you just entered is: %d" %num

2.5 循环和数字

  分别使用while和for创建一个循环

  (a) 写一个while循环,输出整形为0~10(确保是0~10, 而不是0~9 或1~10)

    num = 0

    while num <=10:

      print num

      num += 1

  (b) 使用range函数实现(a)

    for num in range(0,11): #注意此处range的第二个参数不包含在循环内.

      print num

2.6 条件判断, 判断一个数是整数,还是负数,或者0. 开始先用固定的值, 然后修改你的代码支持用户输入数字再进行判断.

  #num = 10

  num = int(raw_input("Enter a number please -->"))

  if num > 0:

    print "%d is greater than 0" %num

  elif num < 0:

    print "%d is smaller than 0" %num

  else:

  print "%s is equal to 0" %num

2.7 循环和字串, 从用户那里接受一个字符串输入, 然后逐字符显示该字符串. 先用while循环实现,然后再用for循环实现.

  (a) # coding = utf-8

    str1 = raw_input("Enter a string please -->")

    numbers = 0

    while numbers <= len(str1)-1:
      print str1[numbers]
      numbers += 1   # 写这个小片段时, 犯了两个小错误, 1. 忘记numbers自增. 2. 越界一次.

  (b) # coding = utf-8

    str1 = raw_input("Enter a string please -->")

    for ch in str1:

      print ch

2.8 循环和操作符. 创建一个包含五个固定数值的列表或元祖, 输入他们的和. 然后修改你的代码为接受用户输入数组, 分别用while 和for循环实现.

  (a)  while

  # coding = utf-8

  lt = [1,2,3,4,5,6,7,8,9]
  num = 0
  total = 0
  while num < len(lt):
    total += lt[num]
    num += 1

  

  (b) for

  lt = [1,2,3,4,5,6,7,8,9]

  total = 0

  for num in lt:

    total += num

  (c) 用户输入创建列表

  lt = []

  i = 0
  total = 0
  while i < 10:
    print "You need enter 10 numbers to create the list %d left" %(10-i)
    num = int(raw_input('Enter your number -->'))
    lt.append(num)
    i += 1

  (d)使用reduce实现    

  lt = [1,2,3,4,5,6,7,8,9,10]

  def addup(num1, num2):
    return num1 + num2

  total = reduce(addup,lt)  #竟然如此简单加列表构造在一起一共4行代码.

2.9 循环和操作符, 创建一个包含五个固定数值的列表货元组, 输入他们的平均值.

  lt = [1,2,3,4,5,6,7,8,9,10]

  avg = float(sum(lt)) / len(lt)

2.10  带循环和条件判断的用户输入, 使用raw_input函数来提示用户输入一个1和100之间的数, 如果用户输入满足这个条件,显示成功并退出. 否则提示一个错误信息然后再次提示用户输入数值, 知道满足条件为止

  while True:

    num = int(raw_input("Enter a number between 1 and 100 -->"))

    if 1 < num < 100:

      print "bingo"

    else:

      print "The number you entered is not between 1 and 100."

2.11 带文本菜单的程序: 写一个带文本菜单的程序, 菜单项如下: (1)取五个数的和, (2)取五个数的平均值, (x)退出. 由用户做一个选择,然后执行相应的功能, 当用户选择脱时程序结束.  

lt = range(1,11)
action = raw_input('What do you wanna do with this list,
  (1) "sum" to get the sum.
  (2) "avg" to get the average.
  (3) "x" to quit -->')

if action == 'sum':
  print "The sum of the list is %d" %sum(lt)
elif action == 'avg':
  print "The average value of the list is %f" %(float(sum(lt)) / len(lt))
elif action.lower() == "x":
  exit()

2.15 元素排序

从大到小:

a = int(raw_input("Enter a number for a -->"))
b = int(raw_input("Enter a number for b-->"))
c = int(raw_input("Enter a number for c-->"))

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

 从小到大:

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

原文地址:https://www.cnblogs.com/chen0427/p/5420748.html