Python Forum

Full Version: Writing a code with 3 digit numbers while they cant contain 0 and then sum them
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hey i need to write a code for my teacher, he said Write a code that will have three 3digit numbers in it and if the number contains 0 f.e. 300,301 or so it will be removed. Afterwards i need to sum the numbers that are left.
So far i created a list with 3 variables in it a,b,c and before i defined a,b,c as random.randint(111,999) so it will be a 3 digit number.
My problem is that i dont know how to find a specific thing in a number. I tried changing the a to string and then doing if 0 in a: /nameoflist/.remove(a) but idk
import random
a=[random.randint(111,1000)]
b=[random.randint(111,1000)]
c=[random.randint(111,1000)]
cisla=[a,b,c]
str(a)
if 0 in a:
    cisla.remove(a)
print(cisla)
Note: cisla is name of list and in english it means numbers so u wont get confused :D
I tried your code with a = str(a) instead of just str(a) and it worked.
In order to randomly pick from all three-digit numbers shouldn't you start with 100 instead of 111?

You should also be aware that random.randint(a, b) returns a random integer N such that a <= N <= b This means that random.randint(111, 1000) can return 1000 (which is not three-digit)

You could take advantage of random.sample():

>>> cisla = random.sample(range(100,1000), 3)
Part of your problem is:

>>> a=[random.randint(111,1000)]    # you create list with random int in it
>>> a
[433]
>>> str(a)                          # you created string from list containing one int; didn't assign name
'[433]'
>>> a                               # a is still list with random three-digit int in it
[433]
>>> if 0 in a:                      # there can't be 0 in a as element because there can be three-digit integers only
In you code cisla is list of lists, something like: [[457], [817], [844]]