#!/usr/bin/python3 #print([(x, x**2) for x in range(1, 11)]) # this is okay - runs the print function, which returns None L = [print(x, x**2) for x in range(1, 11)] #print(L) # note that L was 10 None's L = range(1, 11) # not allowed to do - #[L[i] = L[i]**2 for i in range(0, 10)] L = [L[i]**2 for i in range(0, 10)] # equivalent to ... # L_new = [] # for i in range(0, 10): # L_new.append(L[i]**2) # L = L_new print(L) print([x for x in range(1, 101) if x % 5 == 0]) print([(x, y) for x in range(0, 5) for y in ['a', 'b', 'c']]) # equivalent to... # L_new = [] # for x in range(0, 5): # L_new.append([(x, y) for y in ['a', 'b', 'c']]) # equivalent to... # L_new = [] # for x in range(0, 5): # L_new2 = [] # for y in ['a', 'b', 'c']: # L_new2.append((x,y)) # L_new.append(L_new2) def isPrime(x): if x < 2: return False elif x == 2: return True elif x % 2 == 0: return False else: i = 3 while i*i <= x: if x % i == 0: return False i += 2 return True [print(x) for x in range(1, 101) if isPrime(x)]