Programing in Python3(Second Edition)_实例

Programming in Python3 (Second Edition)实例

  • 前言:在学习Python的过程中推荐一本书,《Programming in Python3 》也就是我以前用过的。推荐理由是这本书讲的很全面很详细,有一些非常实用的实例可以提供给读者学习,学完以后不仅知道会怎么用,还会知道Python代码在系统底层是怎么实现的。最后一点,这本书出版时间比较新,内容也跟得上潮流。以前我把这本书熟读了一遍之后但是没有把后面的实例在编译器上实现,先来补上。以下就是每一章节的实例代码和成功运行之后的效果截图。

Chapter One

#bigdigits.py 41072819
import sys
#coding:utf-8
Zero=['*****','*   *','*   *','*   *','*   *','*   *','*****']
One=['  *  ',' **  ','* *  ','  *  ','  *  ','  *  ','*****']
Two=['*****','    *','    *','*****','*    ','*    ','*****']
Three=['*****','    *','    *','*****','    *','    *','*****']
Four=['  *  ',' **  ','* *  ','*****','  *  ','  *  ','  *  ']
Five=['*****','*    ','*    ','*****','    *','    *','*****']
Six=['*****','*    ','*    ','*****','*   *','*   *','*****']
Seven=['*****','    *','    *','   * ','  *  ',' *   ','*    ']
Eight=['*****','*   *','*   *','*****','*   *','*   *','*****']
Nine=['*****','*   *','*   *','*****','    *','    *','*****']
Digits=[Zero,One,Two,Three,Four,Five,Six,Seven,Eight,Nine]#列表多层嵌套
try:
	digits=input("please input your number:")#读入数字
	row=0
	while row<7:
    	line=""
    	column=0
    	while column<len(digits):#确定有几位数字
        	number=int(digits[column])#读取第一个数字,如果输入的是浮点数进行强制转换
        	digit=Digits[number]#第一个数字对应在Digits列表中的元素
        	line+=digit[row]+" "
        	"""对第一个数字列表的第一个元素赋给line ,每一次循环都对下一个数字列表的第一个元素进行
        	添加赋值给line,每个不同数字列表中的元素之间两个空格
    """
        	column+=1
    	print(line)
    	row+=1
except ValueError as err:#如果用户输入错误的值进行异常处理,打印err
	print(err)

#生成随机数的网格
import random

def get_int(msg,minimum,default):#输入
	while True:
    	try:
        	line=input(msg)
        	if not line and default is not None:
            	return default
        	i=int(line)
        	if i<minimum:
            	print("must be>=",minimum)
        	else:
            	return i
    	except ValueError as err:
        	print(err)

rows=get_int("rows:",1,None)
columns=get_int("columns:",1,None)
minimum=get_int("minimum(or Enter for 0);",-10000,0)
#最大值的默认值为1000如果输入的数大于1000,默认值为两倍的minimum
default=1000
if default<=minimum:
	default=2*minimum
maximum=get_int("maximum(or Enter for "+str(default)+"):",minimum,default)
#双层循环输出行和列的数字
row=0	
while row<rows:
	line=""
	column=0
	while column<columns:
    	i=random.randint(minimum,maximum)
    	s=str(i)
    	s+=" "
    	line+=s
    	column+=1
	print(line)
	row+=1


2018/8/10 13:27:27

posted @ 2018-08-10 13:28  DingM  阅读(408)  评论(0)    收藏  举报