循环和分支

一、数据类型转换

1.数据类型自动转换

a = 10                    整型(in)
b = 12.5                  浮点型(float)
result = a + b            会自动将a转换成浮点型,再计算
print (type(result))

result2 = a + True        会自动将布尔型转换成1
print (result2,type(result2))

运行

<class 'float'>
11 <class 'int'>

2.强制转换

  • 基本语法:类型名(需要转换的数据)
    a.将其他数据转换成int型:浮点型、布尔和部分字符串
    print (int(12.5))        float--->int:去掉小数点和小数点后面的数
    print (int(True),int(False))    bool--->int: 1   0
    
    运行
    12
    1 0
    
  • 去掉字符串的引号后,字符串的内容本身就是一个整数的时候,才能被转换成整型
    print (int('123'))
    print (int('-123'))
    print (int('122.5'))     错误
    print (int('123a'))      错误
    
    运行
    123
    -123
    
    b.将其他的数据类型转换成flaot类型:整数、布尔和部分字符串
    print (float(10))             i
    nt---->float:在整数后加.0
    print (float(True))           bool--->float:True:1.0,False:0.1
    
  • 去掉括号后,字符串的内容本身就是一个整数或者浮点数的时候,才能被转换成浮点型
    print (float('2e3'),float('-12.3'),float('10'))
    
    c.将其他数据类型转换成bool:
  • 所有的数据类型都可以转换成bool
  • 数字中:除0是False,其他都是True

    • 字符串中:除了空串是False,其他都是True
  • 总结:所有为空、为0的值全是False,否则就是True

    print (bool(1),bool(-1),bool(1.1),bool(-1.25))
    print (bool(0),bool(0.0))
    print (bool(None),bool([]))
    
    d.其他数据类型转换成字符串,转换的时候就是在数据外面加引号
    print (str(100),str(1.2),str(True),str([1,2,3]))
    

    二、if语句

python中的分支结构只有一种:if分支结构

1.if

语法:
if 条件语句:
——执行语句块
其他语句

说明:

  • a.if:python中的关键字,‘如果’的意思,用来做判断的

    • b.条件语句:最终结果会转换成布尔值
    • c.冒号:冒号是固定语法,必须写!
    • d.执行语句块:可以是多行语句,但是每行语句必须和前面的if保持一个缩进(一个tab/制表符)
  • 执行过程:先判断条件语句的结果是否为True,如果是就执行冒号后面的语句块。否则,直接执行if模块后的其他语句

    练习:用一个变量保存一个学生的成绩,要求:大学生
      成绩大于90的时候,打印优秀,无论成绩多少,都打印
    grade = 100
    if grade > 90:
     print('优秀')
    print ('%d' % (grade))
    

    2.if——else

    语法:
    if 条件语句:
    ——执行语句块1
    else:
    ——执行语句块2
    其他语句

    说明:

  • else:关键字(else后边的冒号不能省)
  • 执行过程:先判断条件语句的结果是否为Ture,如果是就执行语句块1,然后再执行其他语句; 如果为False,就执行语句块2,然后再执行其他语句
    `python
    age = 20
    if age >= 18:
    print (‘成年’)
    print (‘可以进网吧’)
    else:
    print (‘未成年’)
#### 3.if_elif_else
语法:
 if 条件语句1:
——语句块1
 elif条件语句2:
——语句块2
 elif 条件语句3:
 ——语句块3
​      。。。
else:
——语句块
其他语句
```python
+要求成绩大于90分打印优秀,80-90打印良好,60-79打印及格,60以下不及格
grade = 80
if grade > 90:
    print ('优秀')

elif grade >=80:
    print ('良好')

elif grade >=60:
    print ('及格')

else:
    print ('不及格')
​`
 练习

```python
age = 20
if age >= 18:
    print ('成年')
    print ('可以进网吧')
else:
    print ('未成年')

4.if语句的嵌套

  • 每个if分支中都可以嵌套其他的if语句
    if 条件1:
    ——执行语句1
    ——if 条件2:
    ——执行语句2
    ——else:
    ——执行语句3
    else:
    ——执行语句4
    成绩和年龄:如果成绩大于90并且年龄是18以上 就获奖100万;
                年龄小于18岁,就获取奖金200万
                成绩小于90,打印没有奖金
    grade = 90
    age = 18
    if grade >= 90:
      if age >=18:
          print ('100万')
      else:
          print ('200万')
    else:
      print ('没有奖金')
    
  • 练习:产生一个随机数(0-100),判断随机数是否是偶数,如果是打印偶数,否则打印奇数;如果能被4整除,再打印能被4整除
import random
number = random.randint(0,100)
print ('随机数是:%d' % (number))
if number % 2 == 0:
    print ('偶数')
    if number % 4 == 0:
        print ('能被4整除')
else:
    print ('奇数')
  • 补充:

    import是python中导入模块或者模块中内容的关键字
    random是python内置的产生随机数模块

    import random
    number = random.randint(10,20)    产生一个1020的随机数,并且存到number中
    print (number)
    

    三、条件语句的简写

    • 判断一个数是否是偶数的两种写法
      number = 10
      if number %2 == 0:
      print ('偶数')
      
  • 推荐
    `python
    if not number %2 :
    print (‘偶数’)

if number %2:
print (‘奇数’)

+ 判断一个字符串是否是空串
```python
str1 = 'abc'
if str =='':
    print ('空串')
else:
    print ('不是空串')
  • 推荐
    if str:
      print ('不是空串')
    else:
      print ('是空串')
    

    四、for的循环

在完成某个功能的时候,如果需要重复某个操作,就可以使用循环

python中的循环结构:for循环和while循环

1.for循环的结构:

for 变量名 in 序列:
——循环体

说明:

a.for:关键字

b.变量名:和声明变量时的变量名的要求一样

c.in:关键字

d.序列:容器(数据本身是有多个数据组成),例如:字符串、列表、字典、元祖、range、生成式和生成器

e.循环体:需要重复执行的代码

执行过程:让变量去序列中一个一个取数据,取完为止。每取一次数据,执行一次循环体

for x in ('123'):
    print (x)

range函数是python中内置函数,作用是产生指定范围中的数字

xrange是python2中的函数,python3中用range来代替
range(N):产生0~N-1的所有整数
range(N,M):产生N~M-1的所有整数
range(N,M,step):产生从N开始,每step产生一个整数,到M之前

print ('==========')
for x in range (10):
    print (x)

print ('==========')
for n in range (10,15):
    print (n)

print ('=========')
for x in range (1,11,2):
    print (x)
  • 练习:计算1+2+3+。。。+100
    number = 0
    for x in range (1,101):
      number += x
      print (number)
    
  • 练习:统计1~1000中能够被三整除的数的个数
ste = 0
for x in range (1,1001):
    if x %3 == 0:
        print ('%d 可以被三整除' % (x))
        ste += 1
print ('1~1000中能被三整除的个数:%d' % (ste))
  • 注意:for 循环中用来获取序列值的变量,在循环体不是一定要使用. 如果不用,那么变量名可以声明为_
    打印50行”***”
    for _ in range(50):
     print ('***')
    
  • 1~10000中能被5整除的个数
    sum = 0
    for x in range (1,10001):
      if x %5 ==0:
          sum += 1
    print ('1~10000中能被5整除的数的个数是:%d' % (sum))
    
 (1,200)     7     个数

dob = 0
for x in range (1,201):
    if x %7 == 0:
        dob += 1
print (dob)

五、while循环

QQ截图20180823160402.png

1.结构:

while 条件语句:
​ 循环体

2.说明:

while: 关键字
条件语句:结果是True或者False
循环体:要重复执行代码

3.执行过程:
判断条件语句的结果是否为True,如果为True就执行循环体,执行完循环体再判断条件语句是否为True。。。。。,直到结果为False为止
 1+2+3+...+100
n = 0
x = 1
while x <= 100:
    n += x
    x += 1
print (n)
x = 1,n = 0
1 <= 100   True;n += x  0+1=n;x+=1  1+x=2
x = 2,n = 0+1
2 <=100    True;n=0+1+x=0+1+2;x=1+x=3
。。。
x = 100,n = 0+1+2+...+99
x <= 100   True;n=0+1+。。。+100;x=1+x=101
  • 练习:循环结束,x的值和n的值,分别是多少 x = 6, n = 2+3+4+5+6

    x = 1
    n = 0
    while x <= 5:
      x += 1
      n += x
    print (n,x)
    

    for 循环与while循环的比较
    for循环的循环次数是有限的,并且是确定的;while循环的循环次数不确定 for循环:1.遍历序列中的值 2. 循环次数确定
    while循环:1.死循环 2.循环次数不确定

  • 练习:找大于10000的数中,第一个能够被23整除的数
    `python
    x = 10001
    while x %23 != 0:
    x += 1
    print (x)

`


  转载请注明: 微笑看你 循环和分支

 上一篇
容器 容器
一、复习1.注释a.由字母数字下划线组成,python3中可以是中文。b.数字不能开头。c.大小写敏感3.行与缩进:python中对缩进有严格的要求4.多行显示:加反斜杠5.python中的基本数据类型:类型(int)、浮点类型(float
2017-05-05
下一篇 
正则表达式 正则表达式
正则表达式 正则表达式就是检测字符串是否满足某种规则的工具例如:账号是手机号/邮箱/多少位由什么东西组成的ect 1.正则语法2.Python对正则表达式的支持,提供了一个内置模块:refullmatch(正则表达式,字符串):判断字符串
2017-03-26
  目录