边写边学Python(1)无重复数字的三位数
题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析:可真在百位、十位、个位的数字都是1、2、3、4。先写出所有可能的排列,再排除不符合条件的排列。代码:#!/usr/bin/python# -*- coding: UTF-8 -*-for i in range(1,5):for j in range(1,5):for k in range(1,5):if
·
题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析:可真在百位、十位、个位的数字都是1、2、3、4。先写出所有可能的排列,再排除不符合条件的排列。
代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
for i in range(1,5): #从1开始到4,不包含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)
总结:运用了for循环语句写出所有的排列,if条件语句排除不满足题意的项。
range()函数
语法:range(start, stop[, step])
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
>>>range(10) # 从 0 开始到 9
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>range(1, 11) # 从 1 开始到 10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
>>>range(0, 10, 3) # 步长为 3
[0, 3, 6, 9]
>>>range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>>range(0)
[]
>>>range(1, 0)
[]
range在for中的使用,循环输出:
>>>x = 'njfu'
>>>for i in range(len(s)):
... print (x[i])
n
j
f
u
更多推荐



所有评论(0)