流程控制-for序列、流程控制-for字典

简介:

流程控制-for序列,字典

1、for 循环简介

(1) for 用于 python 中的循环,在条件循环中,如果条件变为假则循环结束
(2) 在序列里,使用 for 循环遍历(列表,元组,字符串)
In [1]: a = {1:'a', 2:'b', 3:'c'}

In [2]: for k,v in a.it
a.items       a.iteritems   a.iterkeys    a.itervalues  

In [2]: for k,v in a.items():
   ...:     print k,v
   ...:     
1 a
2 b
3 c

(3)加上,表示去除换行\n
流程控制-for序列、流程控制-for字典

range的理解:
range(10):表示从0开始到9,总共10个数
range(1,12):表示从1开始到11
rang(1,12,3):3表示间隔
流程控制-for序列、流程控制-for字典

range和xrange的区别:
range(10),占用内存资源
xrange(10),不占用内存资源,当循环的时候就占用,for i in xrange(10):,所以循环就使用xrange减少内存消耗

[root@centos7-3 python]# vim for1.py

#!/usr/bin/python
for i in [i**2 for i in range(1,11)]:
print i,

(4)打印基数
[root@centos7-3 python]# vim for1.py

#!/usr/bin/python
for i in [i**2 for i in range(1,11) if i%2 != 0]:
print i,

(5)打印九九乘法表
当i=1时,那就是for j in xrange(1,2):那j的取值还是1,print 后面的,表示每次循环的结果都横着输出,最好一行的print 就是for结束循环后换行
流程控制-for序列、流程控制-for字典

1x1 =1
2x1 =2 2x2 =4
3x1 =3 3x2 =6 3x3 =9
4x1 =4 4x2 =8 4x3 =12 4x4 =16
5x1 =5 5x2 =10 5x3 =15 5x4 =20 5x5 =25
6x1 =6 6x2 =12 6x3 =18 6x4 =24 6x5 =30 6x6 =36
7x1 =7 7x2 =14 7x3 =21 7x4 =28 7x5 =35 7x6 =42 7x7 =49
8x1 =8 8x2 =16 8x3 =24 8x4 =32 8x5 =40 8x6 =48 8x7 =56 8x8 =64
9x1 =9 9x2 =18 9x3 =27 9x4 =36 9x5 =45 9x6 =54 9x7 =63 9x8 =72 9x9 =81

(6)
contine:退出当前循环,contine下面的语句不会执行
break:退出整个循环
pass:占位,还没想好怎么写先占位,什么都不做
sys.exit:全部整个脚本,相当于shell的exit 0

[root@centos7-3 python]# cat for2.py 
#!/usr/bin/pthon
import sys
import time
for i in xrange(10):
if i == 3:
continue
elif i == 5:
continue
elif i == 6:
pass
elif i == 7:
sys.exit()
print i,
else:
print 'main end'
print 'END'

结果:[root@centos7-3 python]# python for2.py 
0 1 2 4 6

(7)取随机数
In [40]: import random
流程控制-for序列、流程控制-for字典

#猜数字
#系统生成一个20以内的随机整数,玩家有6次机会进行猜猜看,每次猜测都有反馈(猜大了,猜小了,猜对了就介绍),6次中,猜对了,玩家赢,否则系统赢
#随机数

import random
for i in range(6):
    guess_num=int(raw_input('Please guess a num: '))
    system_num=random.randint(1,20)
    print 'system num is %d' %system_num
    if guess_num<=20:
        if guess_num>system_num:
            print 'you guess big num'
        elif guess_num<system_num:
            print 'you guess small num'
        else:
            print 'guess yes'
            break
    else:
        print 'guess (1,20)'
        break
else:
    print 'you input many 6 second'
  1. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
    #permutations(p[,r]);返回p中任意取r个元素做排列的元组的迭代器
    #itertools用于高效循环的迭代函数集合
    import itertools
    a = ['1', '2', '3','4']
    b = 4
    for i in itertools.product('1234','1234','1234'):
    if i[0]==i[1] or i[0]==i[2] or i[1]==i[2]:
        continue
    print i[0]+i[1]+i[2]

方式二:

for i in '1234':
    for j in '1234':
        if i==j:
            continue
        for k in '1234':
            if i==k or j==k:
                continue
        print i+j+k

3、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
#程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

import  math
for i in range(100,999):
    x=math.floor(i/100) #获取百位数
    y=math.floor((i-x*100)/10) #获取十位数;比如i=555,x=5;(555-5*100)/10
    z=math.floor(i-x*100-y*10) #获取个位数;比如i=555 x=5;y=5;z=555-5*100-5*10;
    if i == x**3+y**3+z**3:
        print i,

方式二:更容易理解点

for i in range(100,1000):
    j=i//100#取百位数,//取整除 - 返回商的整数部分;如546//100 ,取5整数部分
    k=(i%100)//10      #取十位数;如536%100取余数为36,然后36//10,相当于30/10 就是3
    p=i%10              #取个位数;如536%10取余数就是6,因为10*53=530,6就是余数
    if i==(j**3+k**3+p**3):
        print i

4、 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
a选队友,b选队友,if a的队友和b的队友不一样,再if a,b,c的队友都不一样,然后再if a,x不等,c,x,z不等,再打印出来

list1=['x', 'y', 'z']
for a in list1:
    for b in list1:
        if a!=b:
            for c in list1:
                if a!=c and b!=c:
                    if a!='x' and c!='x' and c!='z':
                        print 'a-{0},b-{1},c-{2}'.format(a,b,c)

结果:
a-z,b-x,c-y








本文转自方向对了,就不怕路远了!51CTO博客,原文链接: http://blog.51cto.com/jacksoner/2054861,如需转载请自行联系原作者


相关文章
|
16天前
|
C++
C++ 条件与 If 语句:掌握逻辑判断与流程控制精髓
C++ 中的条件语句用于根据布尔表达式的真假执行不同代码。`if` 用于当条件为真时执行一段代码,`else` 配合 `if` 在条件不成立时执行另一段代码。`else if` 允许测试额外的条件。`switch` 语句提供多分支选择。还有三元运算符 `(condition) ? expressionTrue : expressionFalse`,它是一种简写的 if...else 形式,常用于一行内作出决定。
30 0
|
3天前
|
Python
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环
|
1月前
|
C++ 容器
C++语言中for语句循环和作用类型
C++语言中for语句循环和作用类型
23 0
|
8月前
|
C语言 Python
Python顺序结果、选择结构、循环结构
Python顺序结果、选择结构、循环结构
|
9月前
|
小程序
循环结构-用while循环求编写求s=1+(1+2)+(1+2+3)+....+(1+2+3+....+n) 的值
循环结构-用while循环求编写求s=1+(1+2)+(1+2+3)+....+(1+2+3+....+n) 的值
404 0
|
11月前
|
存储 大数据 Python
Python流程控制的关键字:列表推导式和生成器
Python流程控制的关键字:列表推导式和生成器
|
12月前
|
存储 前端开发 JavaScript
听君一席话,如听一席话,解释解释“惰性求值”~
我们习惯将代码编写为 一系列的命令,程序会按照它们的 顺序 进行执行:
|
存储 C语言
C语言基础——(4)for循环语句、if 分支语句
数据类型的转换 如果一个表达式里的数字类型不同就必须首先把这些数字转换成同一个类型然后再进行计算
113 0
|
存储 编译器 C#