博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流程控制-for序列、流程控制-for字典
阅读量:6583 次
发布时间:2019-06-24

本文共 3521 字,大约阅读时间需要 11 分钟。

流程控制-for序列,字典

1、for 循环简介

(1) for 用于 python 中的循环,在条件循环中,如果条件变为假则循环结束(2) 在序列里,使用 for 循环遍历(列表,元组,字符串)
In [1]: a = {1:'a', 2:'b', 3:'c'}In [2]: for k,v in a.ita.items       a.iteritems   a.iterkeys    a.itervalues  In [2]: for k,v in a.items():   ...:     print k,v   ...:     1 a2 b3 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 randomfor 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
  1. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
    #permutations(p[,r]);返回p中任意取r个元素做排列的元组的迭代器
    #itertools用于高效循环的迭代函数集合
    import itertoolsa = ['1', '2', '3','4']b = 4for i in itertools.product('1234','1234','1234'):if i[0]==i[1] or i[0]==i[2] or i[1]==i[2]:    continueprint 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  mathfor 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

转载于:https://blog.51cto.com/jacksoner/2054861

你可能感兴趣的文章
Nginx配置——访问控制
查看>>
a-z的unicode编码
查看>>
油画《叼羊》及绘制过程 武马
查看>>
C Primer Plus (第五版) 第七章 编程练习
查看>>
C Primer Plus (第五版) 第十六章 C预处理器和C库 编程练习
查看>>
Springsecurity之DefaultSecurityFilterChain
查看>>
java常用时间函数
查看>>
Heartbeat 简介
查看>>
webview
查看>>
CentoS5.6 X64下架设 Hadoop完全分布式文件系统
查看>>
感谢大家的支持!
查看>>
使用sql语句向数据库插入数据,不受错误数据影响
查看>>
MySQL主从备份详细步骤
查看>>
javax.net.ssl.SSLHandshakeException
查看>>
Perl经典问题 - Can't create TCP/IP socket (10106)
查看>>
自定义AdvancedDataGrid
查看>>
CSS3 3D旋转立方体
查看>>
定义火狐的临时缓存位置
查看>>
剑指Offer面试题-二叉搜索树与双向链表
查看>>
anisble
查看>>