第二天下午

条件控制语句

1.1 if条件语句的概述

当满足某个条件的时候 我们要做的事情

生活中的场景
做地铁/火车 需要先安检 如果有票就能进站  或者不允许进站

开发中的场景
用户登陆注册 判断登陆时候填写信息是否和注册提交给后台的保持一致

例子:判断重要的日期 五一劳动节,情人节,发工资

思考:单分支条件语句,如果条件为真执行要做的事情 条件为假不会有任何输出,我如果想条件为假的结果

1.2 if判断语句的格式

1.2.1 if语句的基本格式
作用:if语句用来进行判断:
if 要判断的条件:
    条件成立,要做的事

if的基本格式
if 条件:
    要做的事情
1.2.2 if…else
if...else
格式:
   if 条件:
       满足条件,做事情1
       满足条件,做事情2
       满足条件,做事情3
       ....
   else:
       不满足条件,做事情1
       不满足条件,做事情2 
       不满足条件,做事情3  

练习:
   要求,从键盘获取自己的年龄,判断是否大于等于18,如果条件成立“XXXX”
    age = int(input('请输入你的年龄'))
    if age >= 18:  #执行条件为真的结果
        print('成年了')
    else:   #执行条件为假的结果
        print('未成年')


   #案例,进火车站检票 如果有票可以进站 或者不允许进站
    ticket = 0 #1表示有票 0表示无票
    if ticket == 1:
        print('有车票可以进站')
    else: #执行条件为假的结果
        print('没有车票,请先购票')

练习:
   要求:从键盘输入刀子的长度,如果刀子长度没有超过10cm,允许上火车,反之不允许
    knife1 = input('请输入刀子的长度:')
    knife = int(knife1)  #int()函数把input()函数返还的字符串先转换成数字类型
    if knife <= 10:  #满足进站的条件  执行条件为真的结果
        print('可以进站')
    else:  #执行条件为假的结果
        print('不允许进站')


拓展
#if比较运算符
age = 17
if age >= 18:
    print('可以进网吧了')
else:
    print('未成年人不准进网吧')

#if逻辑运算符 or
my = input('你去吗?')
mywife = input('你去吗?')
if my == '去' or mywife == '去':
    print('去买菜')
else:
    print('下馆子')

#if逻辑运算符  and
my = input('你去吗?')
mywife = input('你去吗?')
if my == '去' and mywife == '去':
    print('可以领证了')
else:
    print('再等等,过段时间再去')

#案例:if逻辑运算符not
age = 16
if not(age >= 18):
    print('成年了')
else:
    print('未成年')

#案例3:if逻辑运算符   ---白富美
color = input('你白吗?')
money = float(input('你富吗?'))
beautful = input('你美吗')
#带有小数点的浮点型 属于数字类型
if color == '白' and money >= 10000000 and beautful == '美':
    print('白富美')
else:
    print('--------')
1.2.3 elif
1.if单分支条件语句 当条件为真执行要做的事情 条件为假不会有任何输出  如果我想输出条件为假的结果
2.if else 多分支条件语句  当条件为真执行要做的事情 条件为假执行else后面的语句  如果我们有多个条件都为真 只要满足就可以做对应的事情 

格式:
elif 的使用格式:
if 条件1:
    事情1
elif 条件2:
   事情2
elif  条件3:
    事情3
else: #执行条件为假的结果
    要做的事情

说明:
当条件1满足时,执行事情1,然后整个if语句结束
当条件1不满足,那么需要判断条件2,如果条件2满足,执行事情2,然后整个if语句结束
当条件12都不满足,如果条件3满足,执行事情3,然后整个if语句结束
案例:

#if...elif案例
#根据考试的成绩,判断学生的等级
#案例:通过键盘录入的方式获取学生的成绩(Number类型中的int)
score = 59
if score == 60:
    print('D')
elif score > 60 and score <= 75:
    print('C')
elif score > 75 and score < 90:
    print('B')
elif score >= 90:
    print('A')
else: #以上条件都不满足 执行else条件为假的结果
    print('你要补考')


注意:
   elif必须和if一起使用,否则出错

练习:
   根据用户的输入,判断是星期几,用户输入的数值范围为1~7(正整数)

1.3 if语句的嵌套

1.3.1 概述
条件语句里面再嵌套条件语句
1.3.2 if语句嵌套的格式
if 条件1:
    满足条件1,做事情1
    满足条件1,做事情2
    满足条件1,做事情3
    .....(省略)
    if 条件2:
        满足条件2,做事情1
        满足条件2,做事情2
        满足条件2,做事情3

说明:外层的if判断,if...else
      内层   if...else


# if语句嵌套
#案例,火车安检,先验票,再检查有没有携带违禁品  如果刀子长度没有超过10cm,允许上火车
nicket = 1 #1有票 0无票
knife = 12  #单位cm
#1.先检查用户是否有票
if nicket == 1:
    print('通过安检,可以进站')
    if knife <= 10:
        print('可以上车了')
    else:
        print('携带违禁物品,先抓起来暴打一顿,再送公安局')
else:
    print('请先买票再进站')

1.4 if 语句的应用(猜拳游戏)

石头 剪刀 布
要求:
   电脑随机生成一个0~2之间的正整数0,1,2,
   剪刀(0),石头(1),布(2)
   ,要求用户通过键盘录入的方式输入0~2之间的正整数,产生结果

进制以及进制的转换

1.1 进制的概述

数据的存储

数据存储到计算机
运行速度快 存储海量数据  读取运算方便

数据存储到计算机什么地方?
存储到内存里面去了

数据是如何存储到内存里面
计算机很大一部分功能存储数据 存储器存储 类似内存条 

内存?
抽象的概念
一个状态 1开启 0关闭
一个房间假设装8个开关 控制灯的打开或者关闭
一个房间我们称它为一个字节 每一个开关称为位
1字节= 8位
房间有个编号18 相当于是门牌号 

计算机以二进制方式保存我们的数据到内存里面
0 1

内存存储数据的单位
1bit
8bit = 1字节
1024字节 = 1k
1024k = 1M
1024M = 1G
1024G = 1T
1024T = 1P

进制:进位的计数

1.2 进制的分类

生活中最常见的进制----》十进制1,2,3,4,5,6,7......
常见的进制分为:
   二进制
   八进制
   十进制
   十六进制

二进制:
任何数据在计算机中都是以二进制的形式存在,二进制早期由电信开关演变而来
1.2.1 二进制
特点:
    由0,1组成,0b开头,逢二进一

 例如:
    0 + 0 = 0
    0 + 1 = 1
    1 + 1 = 10
    11 + 1 = 100
1.2.2 八进制
八进制:
    有数字0~7组成,逢八进一 ,以0o开头0,1,2,3,4,5,6,7 逢八进一

 例如:
    1 + 7 = 10
    1 + 3 = 4
1.2.3 十进制
特定:
   0~9数字组成,逢十进一,整数的默认是十进制
   1 + 9 = 10
   10 + 3 = 13
1.2.4 十六进制
特点:
  十六进制的范围0~9   A~F   0123456789a,b,c,d,e,f
  逢161,以0x开头
  1 + f = 10

1.3 进制之间的转换

1.十进制转换为二进制
  做除法,余数逆序
   10(10)---->1010(2)
   10/2 5 0
   5/2  2 1
   2/2  1 0
   1/2  0 1

2.十进制转八进制
10(10)----->12(8)
 10/8 1 2
 1/8 0  1


3.十进制转换为十六进制
直接除以16,余数在10~15之间用a~f表示
1010----》a
11(10)-----b

4.二进制转10进制
   当前的数字,乘以2的位数的次方,最后相加
   10进制转换2进制 1010  
   0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 10


5.八进制转二进制
一转三位,八进制中的1位相当于二进制中的三位,转换的时候按照十进制进行转换

例如:65---->110101
6/2 3 0 
3/2 1 1
1/2 0 1

5/2 2 1
2/2 1 0 
1/2 0 1

6.二进制转换为八进制
三位转1位,从低位取,高位不够补0
1101012----》  65(8)

7.十六进制----》二进制
一位转4位
十六进制的一位相当于二进制的4位,转换时按照十进制进行转换
a4(16)----->1010 0100(2)
  a   --->  1010
  4 ----->   0100


8.二进制转为十六进制
四转1   从低位取,高位不够补0

补充:
    十进制转换为八进制或则十六进制
    (可以先将10----》2---》8/16)
  0000  1010
1    1   1  1   1  1  1  1    
128  64  32 16  8  4  2  1 

1.4 进制之间的快速转换

可以使用python中函数实现
下面的符号对应进制数
b   :  二进制
d   :  十进制
o   :   八进制
x   :  十六进制

十进制转换二进制   ----》    bin(10)
十进制转换为八进制 ---》    oct(10)
十进制转换为十六进制  ----》   hex(10)

二进制转换为十进制   -----    eval("0b1010")
八进制转换为十进制 -----    int(参数1,参数2):参数1:需要转换的数,参数2,进制的类型
print(int('0o12',8))
十六进制转十进制 ----    int(参数1,参数2):参数1:需要转换的数,参数2,进制的类型

1.5 原码/反码/补码

概述:
    数据存储:计算机的存储数据,先开辟一个内存空间,在存储数据,计算机中开辟内存的最小单位是字节,二进制表示数据的存储    0和1  用高位标识符符号表示数值符号(+/-),1表示负数  0:正数

原码/反码/补码是数值运算的基础,在计算机中,数值运算是基于二进制数,底层是二进制运算,使用高位标识符   1表示负数  0:正数

基础定义:
   原码:
       就是二进制定点表示法,即最高为为符号位,0:正数,1:负数,其余的位数表示数值的大小

    通过一个字节   

    10       0000 1010
    -10      1000 1010 


   反码:
      正数的反码和原码相同,负数的反码是对其原码逐位取反(1变0,0变1),但是符号位不变

      +10   反码   0000 1010
      -10   反码   1111 0101

   补码:
    正数的补码和原码一样,负数的补码是在其反码的末尾加1
    +10    补码     0000 1010  
    -10    补码     1111 0110


注意:
   计算机中都是以补码的形式存在


 问题:
    在计算机中,为什么不用原码和反码而用补码?
    因为原码和反码不准确,而使用补码才准确
    二进制转为十进制


    1.使用原码计算
      10-10   
      +10    0000 1010
      -10    1000 1010
      -----------------------------------
             1001 0100    4+16 =-20


    2.使用反码计算
    10-10
    +10    0000 1010
    -10    1111 0101
    --------------------------------
            1111 1111    10000000  ===》   -0

    3.使用补码计算
    10-10
    +10   0000 1010
    -10   1111 0110
    ---------------------------
          0000 0000     0



练习:
    分别计算以下补码表示的十进制数是多少?
   二进制   
  1.0b0000 1111    ------> 15
  2. 0b1111 1111  -----》(将补码转换反码)0b1111 1110   __---->(反码再转原码)0b1000 0001    -1
  3.0b1000 0001    ---->0b1000 0000  ----->    0b1111 1111    -127
  4.~6取反(1变0,0变1)

  6   ----》   二进制   ---》   0000 0110
  取反
  ~6       1111 1001     补码(计算在存储数据时按补码进行存储)

  1111 1001   补码
  1111 1000    反码
  1000 0111   原码
  ---------

循环语句

1.循环语句的介绍

生活中的场景
电风扇 跑道 

软件开发场景

总结: 在程序开发过程中 如果相同的代码执行多次 我们就可以使用循环,循环不是必须的
提高代码的重复使用率,一般应用在开发中

2.while循环

2.1 while循环的格式

格式
while(循环的条件): 如果循环条件满足
    做事情1,
    做事情2,
    做事情3

案例:循环输出1-5的数字

2.2 while循环的应用

案例1:
   计算1~100之间的累计和(包含1100)

案例2:
   计算1~100之间偶数的累计和(包含1100)

   思考:while循环当条件为真执行对应结果 为假就不会执行 如果想输出条件为假的结果 while else 类似
   if else语句

2.3 while…else

格式:
while 判断表达式:
     语句1
else:
     语句2

逻辑:
   在条件语句(判断表达式)为false,执行else中的语句2

案例:循环输出数字1-3

2.4 while循环的嵌套

while循环,while里面嵌套一个while
格式:
    while 条件1:
          条件1满足,做事情1
          条件1满足,做事情2
          条件1满足,做事情3
          .....
          while 条件2:
               条件2满足,做事情1
               条件2满足,做事情2
               条件2满足,做事情3

2.5 while循环嵌套的应用4

案例1.打印一个矩形
    ******
    ******
    ******
    ******




案例2:
 打印杨辉三角
    *
    *  *
    *  *  *
    *  *  *  *
    *  *  *  *  *




案例3:
   打印九九乘法表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值