循环和分支(这次来个全的,不分开写了)
for循环
解决一个问题需要重复执行某一个过程
Python中的循环有两个 for循环还有while循环
for循环
"""
for 变量名 in 序列:
循环体
for:关键字
变量名:和声明变量时是一样的,功能是存储值
in: 关键字,在。。。里的意思
序列: 必须是容器类型的数据类型。字符串、列表、字典、元组、集合等。
循环体:会重复执行的代码块
执行的过程: 用变量不断地取序列的数据,一个一个地取,取完为止,每取一次执行一次循环体
"""
for item in 'adcd123':
print(item)
"""
a
b
c
d
1
2
3
"""
打印20次'abc'
2.range函数
"""
xrange是Python2.x中的函数,在Python3中无效了
range功能是产生指定范围内的数字序列,一般用在for循环中,控制循环次数,或者产生索引值
range(n): 产生 0 ~ n-1的整数序列
range(n,m): 产生n~m-1的整数序列
range(m,n,step): 从M开始,每次加step产生一个数据,直到n前面一个为止
"""
产生数字0~9
for x in range(10):
print(x)
产生数字10到19
for x in range(10,20):
print(x)
产生数字0 2 4 6 8(2为步进)
for x in range(0,10,2):
print(x)
练习: 1+2+3+.....100
x = 0
for i in range(1,101):
x = x + i
# x += i
print(x)
"""
x = 0
x ~ [1~100]
x = 1 x +=i = 0 + 1
x = 2 x +=2 = 1 + 2
x = 3 x +=3 = 1 + 2 + 3
......
x = 100 x + = 100 = 1+2+3+...+100
"""
练习:只使用一个循环
计算123*..10
计算246*...10
a = 1
b = 1
遍历取出1-10中的数
for i in range(1,11):
a *= i
判断i是否为偶数
if i%2 == 0:
b *= i
print(a,b)
练习:有一个字符串'abcdef',依次取出字符串中偶位数(下标值为偶数)
方法二
str1 ='abcdef'
for index in range(0,len(str1),2):
print(str1[index])
方法二
for index in range(0,len(str1)):
if index % 2 = 0:
print(str1[index])
方法三
index = 0
for char in str1:
if index % 2 == 0:
print(char)
index += 1
"""
while循环
"""
while 条件语句:
循环体
while; 关键字
条件语句: 结果为true 或者false
循环体:重复执行的代码段
执行过程: 判断条件是否为true,为true执行循环体,然后回来判断条件是否为true,如果为false,循环结束,直接执行while循环后面的语句
注意:如果条件的结果一直未true,就会造成死循环。所以在循环中要有结束循环的操作
python中没有do-while循环
"""
循环只执行一次
flag = True
while flag:
print('aaa')
flag = False
使用while循环1+...100
q=1
sum = 0
while q <= 100:
print(q)
sum += q
#每次循环让Q值加一
q += 1
print(sum)
练习:计算2+4+6+..100
w = 2
sum2 =0
while w <=100:
if w % 2 == 0:
sum2 += w
w += 1
print(sum2)
break和continue
break和continue两个关键字都是用来结束循环。
continue:关键字,在循环体中遇到continue,结束当次循环,直接接入下一次循环的判断
下一个值,如果while后面的while循环就去判断while循环后面的条件语句是否为true)
break:关键字,只要在循环体中遇到break就直接结束整个循环,直接执行循环后面的其他语句
"""
for x in range(10):
print(x)
continue #不执行continue后面的循环,直接让下一个值x去
print('===')
取偶数
for x in range(10):
if x % 2:
continue
print(x)
"""
break:关键字,只要在循环体中遇到break就直接结束整个循环,直接执行循环后面的其他语句
"""
for x in range(10):
print(x)
break
print('===')
print('!!!')
通过改变条件语句的值,来结束循环
numer = 1
while numer <= 100:
print(numer)
numer += 1
通过break结束死循环
numer = 1
while True:
if numer > 100:
break
print('==',numer)
numer += 1
练习:找出100-1000以内的第一个能够被3整除以及被17整除的数
for numer in range(100,1001):
if numer % 3 and numer % 17 == 0:
print(numer)
break
for和while的选择以及循环嵌套
1.for和while的选择
"""
for循环的循环次数是确定的,while循环的循环次数可以不确定
- 循环次数不确定的时候,选择while循环,确定一般使用for循环
- 使用循环取遍历一个序列中的值使用for循环
"""
2.input
"""
input()接收从控制台输入数据的数据(输入的数据以回车结束)
程序中遇到input()函数,程序会柱塞,等待用户输入完之后,才会接着执行后面的代码
"""
value = input()
print ('=====')
3.产生随机数
Python中的一个内置模块,可以产生随机数:random
"""
randint(m,n):产生一个m-n的随机数(整数)
"""
导入random模块
import random
产生100-200的随机数
number = random.randint(100,200)
print(number)