笔记:
关于range()函数注意以下几点:
这个函数可以创建一个数字元素组成的列表
这个函数最常用于for循环
函数的参数必须是整数,默认从0开始
step默认值是1,如果不写,就是按照此值。
如果step是正数,返回list的最后的值不包含stop值,如果是负数,则大于stop
step不能是0,如果等于0就报错
a_dict={“name”:“qiwsir”,“lang”:“python”,“email”:“qiwsir@gmail.com”,“website”:“www.itdiffer.com”}
for k,v in a_dict.iteritems():
print k,a_dict[k]
print k ,v
练习1
- 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
#!/usr/bin/python
for x in range(1,5):
for y in range(1,5):
for z in range(1,5):
if (x!=y) and (y!=z) and (z!=x):
print("%d%d%d" % (x, y, z))
-
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
#!/usr/bin/python
import math
for i in range(100,1000):
x = math.floor(i/100)
y = math.floor((i - x*100)/10)
z = i - math.floor(i/10) *10
if i == x3 + y3 + z**3:
print(i) -
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
for i in ‘xyz’:
for j in ‘xyz’:
for k in ‘xyz’:
if i!=k and i!=j and j!=k:
if i !=‘x’ and k!=‘z’ and k!=‘x’:
print ‘a VS %s\nb VS %s\nc VS %s’%(i,j,k)
练习2 -
将一个正整数分解质因数。例如:输入90,打印出90=233*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成:
(1)如果分解后商为1,则说明分解质因数的过程已经结束,打印出即可。
(2)如果商不为1,则应打印出i的值,并用n除以i的商,作为新的正整数进行分解,
重复执行第一步。
(3)如果n不能被i整除,则i的值加1,重复执行第一步。
while 1:
n = int(input(‘请输入一个整数:’))
print(’%d=’%n,end= ‘’)
while n>1:
for i in range(2,n+1):
if n%i0:
n=int(n/i)
if n1:
print(’%d’%i,end=’’)
else:
print(’%d*’%i,end=’’)
break
print()
- 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
程序分析:采取逆向思维的方法,从后往前推断。
p = 1
print(‘第10天吃之前就剩1个桃子’)
for i in range(9, 0, -1):
p = (p+1) * 2
print(‘第%s天吃之前还有%s个桃子’ % (i, p))
print(‘第1天共摘了%s个桃子’ % p)