2018-11-22学习笔记

原创
2018/11/26 09:53
阅读数 24

循环是一个结构,导致程序要重复一定的次数。

条件循环也是如此,当条件变为假,循环结束。

1. 流程控制-for序列

在序列里,使用for循环遍历。

语法:

for iterating_var in sequence:

statement(s)

字符串变量:

i, 抑制换行符在一行显示。

列表:

range()函数:

range()返回时一个列表;

range可以快速的生成一个序列

range(I, j, [,步进值])

如果所创建对象为整数,可以用range

i为初始值,不选默认为0;j为终止值,但不包括在范围内;步进值默认为1;

示例:算1+2 +3...+100 的大小

vim 3.py

#! /usr/bin/python

sum = 0

for i in range(1,101):

sum = sum + i

print sum

xrange函数:

xrange()函数用法与range完全相同,所不同的是生成的不是数值列表,而是一个生成器。

xrange()生成的对象只有在遍历的时候才输出列表元素,比较节约内存资源。

2. 流程控制-for字典

迭代遍历

遍历序列:将序列中各个元素取出来。

- 直接从序列取值

- 通过索引取值

注:“迭代”,指重复执行一个命令。

示例:写一个乘法表

vim 5.py

#! /usr/bin/python

for i in range(1,10):

for j in range(1,i+1):

print "%s*%s=%s" % (j,i,j*i),

print

标注:

第一行表示乘法表的行数;

第二行内层循环,控制列数的,j的取值是1到i+1

第三行表示外层循环一次i的值乘以j的值,不换行;

第四行表示内层循环结束后打印换行符;

3.循环推出

for

else

for循环正常结束后,才会执行else语句。

 

1. 正常循环结束测试else

vim 6.py

#! /usr/bin/python

for i in xrange(1,10):

print i

else:

print 'main end'

 

2. 导入time模块

#! /usr/bin/python

import time

for i in xrange(1,10):

print i

time.sleep(1)

else:

print 'main end'

一秒中循环打印一次

按ctrl + c退出循环后else后不执行;

 

3. break退出循环

#! /usr/bin/python

for i in xrange(1,10):

print i

if i == 5:

break

else:

print 'main end'

break退出循环else也不执行;

 

4. continue继续循环,满足条件的不执行continue后面的操作。

#! /usr/bin/python

for i in xrange(1,10):

if i == 3:

continue

if i == 5:

break

print i

else:

print 'main end'

 

5. 导入sys模块sys.exit()退出整个脚本

import 导入模块

pass 占位不执行操作

sys.exit() 退出,后面的print ‘hello’ 都不执行

#! /usr/bin/python

import sys

for i in xrange(1,10):

if i == 3:

continue

elif i == 5:

continue

elif i == 7:

pass

elif i == 8:

sys.exit()

print i

else:

print 'main end'

print 'hello'

练习:

  • 系统生成一个20以内的随机整数,
  • 玩家有6此机会进行猜猜看,每次猜测都有反馈(猜大了,猜小了,猜对了-结束)
  • 6次中,猜对了,玩家赢了。
  • 否则系统赢了。

import random

random.randint(1,20) 在1到20之间随机生成一个整数,包含1和20;

 

#! /usr/bin/python

# -*- coding: utf-8 -*-

import os,sys

import random

ran = random.randint(0,20)

 

for i in xrange(1,7):

num1 = raw_input("please input a number: ")

num2 = int(num1)

if num2 == ran:

print 'you win'

break

else:

if num2 > ran:

print "猜大了"

elif num2 < ran:

print '猜小了'

else:

print 'you lose'

#!/usr/bin/python

import random

import sys

ran=random.randint(1,20)

#for i in xrange(1,7):

for i in xrange(1,7):

    while True:

        a=raw_input("plese input a num: ")

        if not a.isdigit():

            continue

        else:

            break

    a = int(a)

    if a == ran:

        print ('you win!')

        break

    else:

        if a > ran:

            print 'too big'

            print 'you have '+str(6-i)+' Test'

        elif a < ran:

            print 'too small'

            print 'you have '+str(6-i)+' Test'

        else:

            print 'you win!'

    if i==6:

        print 'you lose!'

 

4. 流程控制while:

while与for相比:

for循环用在有次数的循环上。

while循环用在有条件的控制上。

 

while循环,直到表达式变为假,才退出while循环,表达式是一个逻辑表达式,必须返回一个true或false。

语法:

while expression

statement(s)

1.

#! /usr/bin/python

while 1:

print 'hello'

注:while 1: 表示true,所以执行下面的print ‘hello',由于没有表达式为false,所以一直循环下去,处于死循环状态

 

#! /usr/bin/python

n = 0

while not n == 5:

print 'hello'

n += 1

注;循环一次n变为1,循环5次后n==5 ,第六次循环时n 已经等于5,条件false退出不执行后面循环。

 

2.

#! /usr/bin/python

n = 0

while True:

if n ==5:

break

print 'hello'

n += 1

 

3.

#! /usr/bin/python

while True:

print 'hello'

a = raw_input("please input something(q exit): ")

if a == 'q':

break

 

4.

#! /usr/bin/python

a = ''

while a != 'q':

a = raw_input("please input something(q for exit): ")

print 'hello'

注:先给a一个初始值,当键盘输入q时退出循环

 

5.

#! /usr/bin/python

a = ''

while a != 'q':

a = raw_input("please input something(q for exit): ")

print 'hello'

if not a:

break

注:a等于任何非空字符串时都是正确的,所以not a 为false;

a 等于空字符串时false,not a 为true,所以执行后面break;

 

else:

while循环也支持else,和for循环一样,循环正常结束后执行else下内容;

正常结束为遇到假的表达式时退出。

当循环中使用break结束或则执行过程总按ctrl c 退出不执行else

 

#! /usr/bin/python

a = ''

while a != 'q':

a = raw_input("please input something(q for exit): ")

print 'hello'

if not a:

break

else:

print 'main end'

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部