求大神看看这一段话什么意思啊
for i in range(ord('x'),ord('z') + 1): #这一行是什么意思呢?特别是这个+1 本帖最后由 thexiosi 于 2018-5-31 20:32 编辑hi 可以分解如下:本质还是基本的for循环语句
>>> ord('a') #ord()函数可以返回字符的ASCII码
97
>>> ord('x')
120
>>> ord('z')
122
>>> for i in range(120, 122+1): #数学运算
print(i)
120
121
122 thexiosi 发表于 2018-5-31 20:26
hi 可以分解如下:本质还是基本的for循环语句
>>> ord('a') #ord()函数可以返回字符串的ASCII码
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定
比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出
三队赛手的名单。 其实我是在做这一道题
源代码如下:
for i in range(ord('x'),ord('z') + 1): #这个地方不太懂
for j in range(ord('x'),ord('z') + 1):
if i != j:
for k in range(ord('x'),ord('z') + 1):
if (i != k) and (j != k):
if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):
print ('order is a -- %s\t b -- %s\tc--%s' % (chr(i),chr(j),chr(k))) 源代码是算法的体现, 我个人的理解如下
for i in range(ord('x'),ord('z') + 1): # 相当于甲队的a
for j in range(ord('x'),ord('z') + 1):# 相当于甲队的b
if i != j: #同一队不比 a ,b
for k in range(ord('x'),ord('z') + 1): #相当于甲队的c
if (i != k) and (j != k): #同一队不比 a c ,b c
if (i != ord('x')) and (k != ord('x')) and (k != ord('z')): #a说他不和x比,c说他不和x,z比
print ('order is a -- %s\t b -- %s\tc--%s' % (chr(i),chr(j),chr(k)))#剩下满足条件的组合就是答案了 只不过将xz转换为int类型,然后进行循环而已
只要搞定逻辑了这类问题有很多种写法
页:
[1]