Python 练习—生成随机整数组成的网格程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wuq757693255/article/details/81073665

题目要求

生成一个随机整数组成的网格的程序,用户可以规定需要输入多少行,多少列,以及整数所在的范围。
示例:

rows:7v
invalid literal for int() with base 10: '7v'
rows:4
columns:7
minimum(or Enter for 0):-10
maximum(or Enter for1000):
     478     297       0     487     508      56     456
     762     691     285     599     511     163     450
     763     194     744      19     716     210       5
     777     363     356      27     468     992     351

解决思路

1.定义一个获取用户输入整数的函数,用来获取行、列及整数范围(最大最小值)
2.使用random模块的randint方法随机生成整数
3.使用2个循环将每行每列的整数打印出来

源码

#-*- coding: utf-8 -*-
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)    
default=1000
#注意默认值如果小于最小值的情况
if default<minimum:
    default=2*minimum
maximum=get_int("maximum(or Enter for"+str(default)+"):",minimum,default)

row=0
while row<rows:
    column=0
    line=""
    while column<columns:
        i=random.randint(minimum,maximum)
        s=str(i)
        while len(s)<8:  #每个随机生成的数字都使用8字符的字符串来表示
            s=" "+s
        line+=s
        column+=1
    print(line)
    #注意 该行不能放在第三个循环里面,因为每print一次,换行。
    row+=1

涉及知识点

循环语句while的使用
try: except: 捕获异常语句的使用
python 内置模块random模块,使用randint随机生成给定范围的整数

猜你喜欢

转载自blog.csdn.net/wuq757693255/article/details/81073665
今日推荐