function - Generating random number with different digits -
so need write program generates random numbers 100 999, , tricky part digits in number can't same.
for example: 222
, 212
, on not allowed.
so far, have this:
import random = int (random.randint(1,9)) <-- first digit b = int (random.randint(0,9)) <-- second digit c = int (random.randint(0,9)) <-- third digit if (a != b , != b , b != c): print a,b,c
as can see, generate 3 digits separately. think it's easier check if there same digits in number.
so, want loop generate numbers until requirements met (now either prints blank page or number). note generates once , have open program again.
in c++ did 'while loop'. , here don't know how it.
and 1 more question. how can code number(quantity) of random numbers want generate? more specific: want generate 4 random numbers. how should code it?
p.s. thank answers , suggestions, keen on learning new techniques , codes.
to loop until it's ok can use while in python:
from random import randint = randint(1, 9) b = randint(0, 9) c = randint(0, 9) while not (a!=b , b!=c , c!=a): = randint(1, 9) b = randint(0, 9) c = randint(0, 9)
you can put in function:
def generate_number(): = randint(1, 9) b = randint(0, 9) c = randint(0, 9) while not (a!=b , b!=c , c!=a): = randint(1, 9) b = randint(0, 9) c = randint(0, 9) return (a, b, c)
and if want n
such numbers (they not numbers since (a, b, c)
tuple of 3 int
values), can call n
times:
for in range(n): print(generate_number())
if prefer formatting values, can do:
for in range(n): print('%d %d %d'%generate_number()) # old style formatting print('{} {} {}'.format(*generate_number())) # new style
finally, can use n
command line:
import sys n = sys.argv[1]
or can ask directly:
n = int(input("please enter number: ")) # in python2.x you'd use raw_input instead of input
you'll exception if value cannot converted; can catch exception , loop generation of numbers.
putting typical main
construct:
from random import randint import sys def generate_number(): = randint(1, 9) b = randint(0, 9) c = randint(0, 9) while not (a!=b , b!=c , c!=a): = randint(1, 9) b = randint(0, 9) c = randint(0, 9) return (a, b, c) def main(): n = sys.argv[1] in range(n): print('{} {} {}'.format(*generate_number())) if __name__=='__main__': main()
Comments
Post a Comment