'''【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
掉不满足条件的排列。
'''
''' 知识点:
list 可变列表 定义方法:
var = []
var = [a,b]
var = [x for x in iterable]
var = list()#类构造器 原型:list([iterable])
list('abc')==list((a,b,c))==[a,b,c]
操作:
sort()
common 和 mutable(可变的)序列方法。
Ranges:代表一个不变的数字范围。用于在循环中,对一个数字循环数次。
原型:class range(stop)
class range(start,stop[,step])
stop:数列起始
start:数列结束
step:数列步长
例子:
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(0))
[]
>>> list(range(1, 0))
[]
>>> r = range(0, 20, 2)
>>> r
range(0, 20, 2)
>>> 11 in r
False
>>> 10 in r
True
操作:common方法
Tuples 元组,不变的序列 存储异构的集合数据,或不变的同构数据序列。
定义:以逗号分隔的项目,括号非必需,
(),括号定义空元组
a,or (a,), 以逗号结尾定义一个元素的元组
a,b,c or (a,b,c) 以逗号分隔的项目
tuple(iterable) 构造器
tuple('abc') == ('a','b','c')
tuple([1,2,3])==(1,2,3)
操作:common 操作
common操作
元素是否存在列表
x in s
x not in s 返回为True,False,
连接两个列表
s + t
s * n or n * s 复制列表n个,并连接
取值
s[i]
s[i:j:k]
长度 len(s)
最大最小值 min(s) max(s)
出现次数 s.count(x)
取x下标 s.index(x[, i[, j]]) i坐标后,j坐标前
s.index(x) s.index(x,1) s.index(x,1,3)
mutable操作
赋值 s[i] = x s[i:j:k] = t,t为iterable,k为步长,可忽略:k,默认为1
删除 del s[i:j:k]
追加 s.append(x)
s.clear()
s.copy()
s.insert(i, x)
s.pop([i]) 获取并删除
s.remove(x) 删除元素
s.reverse()反转元素
s.extend(t) 将列表t追加到列表
'''
''' 解法一:遍历1<=x<5的范围,求出所有组合,
然后在最终输出时剔除相同的数字'''
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if( i != k ) and (i != j) and (j != k):
print(i,j,k)
''' 解法二:首层循环遍历所有元素,
下一层循环排除上一循环出现的数字,使得最终结果不会有重复数字'''
t = [1,2,3,4]
for i in t:
h = t.copy()
h.remove(i)
for j in h:
d = h.copy()
d.remove(j)
for k in d:
print(i,j,k)
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
掉不满足条件的排列。
'''
''' 知识点:
for 循环:以冒号开始循环体
list 可变列表 定义方法:
var = []
var = [a,b]
var = [x for x in iterable]
var = list()#类构造器 原型:list([iterable])
list('abc')==list((a,b,c))==[a,b,c]
操作:
sort()
common 和 mutable(可变的)序列方法。
Ranges:代表一个不变的数字范围。用于在循环中,对一个数字循环数次。
原型:class range(stop)
class range(start,stop[,step])
stop:数列起始
start:数列结束
step:数列步长
例子:
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(0))
[]
>>> list(range(1, 0))
[]
>>> r = range(0, 20, 2)
>>> r
range(0, 20, 2)
>>> 11 in r
False
>>> 10 in r
True
操作:common方法
Tuples 元组,不变的序列 存储异构的集合数据,或不变的同构数据序列。
定义:以逗号分隔的项目,括号非必需,
(),括号定义空元组
a,or (a,), 以逗号结尾定义一个元素的元组
a,b,c or (a,b,c) 以逗号分隔的项目
tuple(iterable) 构造器
tuple('abc') == ('a','b','c')
tuple([1,2,3])==(1,2,3)
操作:common 操作
common操作
元素是否存在列表
x in s
x not in s 返回为True,False,
连接两个列表
s + t
s * n or n * s 复制列表n个,并连接
取值
s[i]
s[i:j:k]
长度 len(s)
最大最小值 min(s) max(s)
出现次数 s.count(x)
取x下标 s.index(x[, i[, j]]) i坐标后,j坐标前
s.index(x) s.index(x,1) s.index(x,1,3)
mutable操作
赋值 s[i] = x s[i:j:k] = t,t为iterable,k为步长,可忽略:k,默认为1
删除 del s[i:j:k]
追加 s.append(x)
s.clear()
s.copy()
s.insert(i, x)
s.pop([i]) 获取并删除
s.remove(x) 删除元素
s.reverse()反转元素
s.extend(t) 将列表t追加到列表
'''
''' 解法一:遍历1<=x<5的范围,求出所有组合,
然后在最终输出时剔除相同的数字'''
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if( i != k ) and (i != j) and (j != k):
print(i,j,k)
''' 解法二:首层循环遍历所有元素,
下一层循环排除上一循环出现的数字,使得最终结果不会有重复数字'''
t = [1,2,3,4]
for i in t:
h = t.copy()
h.remove(i)
for j in h:
d = h.copy()
d.remove(j)
for k in d:
print(i,j,k)