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

题目要求

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

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随机生成给定范围的整数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值