在任何形式的程序开发之前,不管是大还是小,都要进行分析。即根据功能需求,将不同功能点进行分解。从而确定开发过程。我们现在做一个很小的程序,也是这样来做。
要实现随机选择一个数字,可以使用python中的一个随机函数:random。
>>> import random #这个是必须的,因为不是内置函数 >>> dir(random) ['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', 'WichmannHill', '_BuiltinMethodType', '_MethodType', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_acos', '_ceil', '_cos', '_e', '_exp', '_hashlib', '_hexlify', '_inst', '_log', '_pi', '_random', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'division', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'jumpahead', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate'] >>> help(random.randint) Help on method randint in module random: randint(self, a, b) method of random.Random instance Return random integer in range [a, b], including both end points.随机整数:
>>> import random >>> random.randint(0,99) 21随机选取0到100间的偶数:
>>> import random >>> random.randrange(0, 101, 2) 42随机浮点数:
>>> import random >>> random.random() 0.85415370477785668 >>> random.uniform(1, 10) 5.4221167969800881随机字符:
>>> import random >>> random.choice('hiekay.github.io') 'g'多个字符中选取特定数量的字符:
>>> import random random.sample('hiekay.github.io',3) ['w', 's', 'b']随机选取字符串:
>>> import random >>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] ) 'lemon'**洗牌:**把原有的顺序打乱,按照随机顺序排列
>>> import random >>> items = [1, 2, 3, 4, 5, 6] >>> random.shuffle(items) >>> items [3, 2, 5, 6, 4, 1]上面的程序已经能够基本走通,但是,还有很多缺陷。
最明显的就是只能让人猜一次,不能多次。怎么修改,能够多次猜呢?动动脑筋之后看代码,或者看官在自己的代码上改改,能不能实现多次猜测?
另外,能不能增强一些友好性呢,让用户知道自己输入的数是大了,还是小了。
根据上述修改想法,新代码如下:
#!/usr/bin/env python #coding:utf-8 import random number = random.randint(1,100) print "请输入一个100以内的自然数:" input_number = raw_input() if number == int(input_number): print "猜对了,这个数是:" print number elif number > int(input_number): print "小了" input_number = raw_input() elif number < int(input_number): print "大了" input_number = raw_input() else: print "错了。"升级:
#! /user/bin/env python #coding:utf-8 import random number = random.randint(1,100) i = 1 while i==1: print "请输入一个你猜的数字" unumber = raw_input(); if int(unumber) > number: print "大了" elif int(unumber) < number: print "小了" elif int(unumber) == number: print "对了" i=2 else: print "请输入数字"