Python培训第三天笔记

一、上堂回顾

1.默写题目

1.定义一个数字类型的变量,并将其转换为字符串,最后将其删除

num = 10
s = str(num)
del num

2.向控制台打印字符串111,222,333,并使用短横线【-】相连

print("111-222-333")
print("111","222","333",sep="-")

3.从控制台输入一个数,判断该数是否是奇数

num = int(input())
if num % 2 == 0:
  print("偶数")
else:
  print("奇数")
  
if num % 2 == 1:
  print("奇数")
else:
  print("偶数")

4.从控制台输入一个数,打印对应的星期英文【Mon,Tues,Wed,Thur,Fri,Sat,Sun】

num = int(input())
if num <= 0:
  print("有误")
elif num == 1:
  print("Mon")
elif num == 2:
  print("Tues") 
else:
  print("有误")

2.知识点回顾

1.常量和变量

​ Python的数据类型:Number,String,Boolean,list,tuple,dict,set

​ 变量

​ 定义:变量名 = 初始值

​ 作用:存储数据,参与运算

​ 内存中的变量:定义变量的时候,需要在内存中开辟空间,引用指向一个实体,当一个实体没有引用指向的时候,则会被系统的垃圾回收机制回收,原来开辟的空间被释放掉【销毁掉】

​ 删除变量:del 变量名

​ 变量的类型转换:int() float() str()

2.输入输出

​ print():values sep end file flush

​ input:结果都是字符串

3.运算符

​ 算术运算符:/ // / % **

​ 赋值运算符:注意复合赋值运算符的等价关系

​ 关系运算符:注意:结果都是布尔值

4.if

​ 注意区分if,if-else,if-elif-else

3.作业讲解

代码演示:

#5.从控制台输入两个数,输出较大的值
num1 = int(input())
num2 = int(input())
if num1 > num2:
    print(num1)
elif num1 < num2:
    print(num2)
else:
    print(num1)
​
#思路:首先定义一个新的变量,将num1或者num2中的任何一个值赋值给新的变量
max1 = num1
if max1 > num2:
    print(max1)
​
#2.从控制台输入三个数,输出较大的值
n1 = int(input())
n2 = int(input())
n3 = int(input())
max = n1
if n2 > n1:
    max = n2
if n3 > max:
    max = n3
print(max)
​
​
#3.从控制台输入一个三位数,如果是水仙花数就打印“是水仙花数”,否则打印“不是水仙花数”  例如:153=1^3+5^3+3^3
num = int(input())   #153
#将各个位数上的数拆分出来
gw = num % 10   #3
sw = num % 100 // 10   #5
bw = num // 100    #1
total = gw ** 3 + sw ** 3 + bw ** 3    #pow(gw,3)
if num == total:
    print("水仙花")
else:
    print("不是")

二、运算符与表达式【第二部分】

1.逻辑运算符

作用:进行设置条件,运算的结果为布尔值

使用:一般结合关系运算符使用

逻辑与:and

​ 表达式1 and 表达式2 :只有当表达式1和表达式2同时成立的时候,则结果为True

逻辑或:or

​ 表达式1 or 表达式2 :当表达式1和表达式2中至少一个成立的时候,则结果为True

逻辑非:not

​ not 表达式:真---》假 假---》真

1.1逻辑与

代码演示:

"""
真 and 真  = 真
真 and 假 = 假
假 and 真 = 假
假 and 假 = 假
​
"""
num1 = 10
num2 = 20
#逻辑运算符结合算术运算符
if num1 - 10 and num2:
    print("成立")
else:
    print("不成立")
​
#逻辑运算符结合变量
if num1 and num2:
    print("成立")
else:
    print("不成立")
​
#思考问题:逻辑运算符结合赋值运算符使用?-----》不能
#注意:赋值运算符肯定不会出现在条件中
"""
#错误演示
if num1 += 1 and num2 -= 1:
    print("成立")
"""
​
#逻辑运算符结合条件运算符
if num1 > num2 and num1 == num2:
    print("成立")
else:
    print("不成立")

1.2逻辑或

代码演示:

"""
真 or 真  = 真
真 or 假 = 真
假 or 真 = 真
假 or 假 = 假
"""
num3 = 0
num4 = 1
if num3 or num4:
    print("成立")
else:
    print("不成立")
​
​
if num3 > num4 or num3 == num4:
    print("成立")
else:
    print("不成立")

1.3逻辑非

代码演示:

"""
not 真 = 假
not 假 = 真
"""
num = 0
if not num:
    print("成立")
else:
    print("不成立")

1.4短路原则【掌握】

面试题

出现的时机:在一个表达式中,逻辑运算符不止一个的时候,则会出现短路原则

规律:

​ a.表达式从左到右进行运算,如果第一个逻辑运算符为or,表达式1的值为真,则整个表达式的结果为真

​ 举例:表达式1 or 表达式2 or 表达式3

​ b.表达式从左到右进行运算,如果第一个逻辑运算符为and,表达式1的值为假,则整个表达式的结果为假

​ 举例:表达式1 and 表达式2 and 表达式3

​ c.如果or的左边的逻辑值为假 and的左边的逻辑值为真,则不再遵循短路原则,按照步骤分步计算

代码演示:

#1.逻辑运算符全部是and----》第一个and的左边为False
def a():
    print("A")
    return False
def b():
    print("B")
    return False
def c():
    print("C")
    return True
def d():
    print("D")
    return False
def e():
    print("E")
    return True
​
#False and False and True and False and True
"""
1.整个表达式的值:False
2.只有a函数被执行,打印的结果为A,其他所有的全部被短路
"""
if a() and b() and c() and d() and e():
    print("ok")
​
#2.逻辑运算符全部是and----》第一个and的左边为True
def a():
    print("A")
    return True
def b():
    print("B")
    return True
def c():
    print("C")
    return False
def d():
    print("D")
    return False
def e():
    print("E")
    return True
​
#True and True and False and False and True
#True and False and False and True   ----->A B
#False and False and True ------>C
"""
1.整个表达式的值:False
2.按照步骤分别操作,最终打印ABC
"""
if a() and b() and c() and d() and e():
    print("ok")
​
#3.逻辑运算符全部是or----》第一个or的左边为True
def a():
    print("A")
    return True
def b():
    print("B")
    return False
def c():
    print("C")
    return True
def d():
    print("D")
    return False
def e():
    print("E")
    return True
​
#True or False or True or False or True
"""
1.整个表达式的值:True
2.打印A
"""
if a() or b() or c() or d() or e():
    print("ok")
​
print("~~~~~~")
​
#4.逻辑运算符全部是or---》第一个or的左边为False
def a():
    print("A")
    return False
def b():
    print("B")
    return False
def c():
    print("C")
    return True
def d():
    print("D")
    return False
def e():
    print("E")
    return True
​
#False or False or True or False or True
#False or True or False or True  ----->AB
#True or False or True ----->C
​
"""
1.整个表达式的值:True
2.打印ABC   ok
"""
if a() or b() or c() or d() or e():
    print("ok")
​
print("~~~~~~")
​
#5.逻辑运算符中的and和or的混合使用
#注意:局部使用短路原则
def a():
    print("A")
    return False
def b():
    print("B")
    return False
def c():
    print("C")
    return True
def d():
    print("D")
    return False
def e():
    print("E")
    return True
def f():
    print("F")
    return True
def g():
    print("G")
    return False
def h():
    print("H")
    return True
​
#False and False and True and False or True and True or False and True
#False or True and True or False and True  ------>A
#True  and True or False and True       ----->E
#True  or False and True       ---->F
"""
1.整个表达式的值:True
2.打印AEF ok555【特殊情况:or的左边是True,则直接短路】
"""
if a() and b() and c() and d() or e() and f() or g() and h():
    print("ok555555")
​
#注意:在实际应用中,一般会出现一个and和一个or,最好能对不同的条件添加括号

2.成员运算符

注意:成员运算符一般在list中使用

in:如果在指定列表中找到某个值,则返回True

not in :如果在指定列表中没有找到某个值,则返回True

3.身份运算符

is:判断两个标识符是否是引用同一个实体

is not:判断两个标识符是否是引用不同的实体

注意:运算的结果为布尔值

代码演示:

a = 10
b = 10
​
if a is b:
    print("yes")
else:
    print("no")
​
if a is not b:
    print("yes")
else:
    print("no")
​
b = 20
if a is b:
    print("yes")
else:
    print("no")
​
if a is not b:
    print("yes")
else:
    print("no")
​
#==
if a == b:
    print("yes~~~~~")
if id(a) == id(b):
    print("yes%%%%%")

总结:

​ a.is和id()比较的是变量在内存中的地址

​ b.==比较的是变量的值

4.运算符的优先级

注意:在实际应用中,尽量不要写过于复杂的表达式,如果有稍微复杂运算的话,尽量通过括号区别优先级

三、循环语句之while语句

1.概念

编程语言中,在满足条件的情况下,反复执行某一段代码,这种现象被称为循环,其中,这段被反复执行的代码被称为循环体

问题:当反复执行某一段代码的时候,需要在合适的时机将循环的条件改为假,从而结束循环,否则会形成一个死循环

Python中的循环语句:while语句,for语句

举例:打印10遍helloworld

2.while语句

2.1使用

语法:

if 表达式:

​ 语句

while 表达式:

​ 语句

详细的写:

初始化表达式

while 条件表达式:

​ 循环体

​ 循环之后的操作表达式

工作原理:当程序从上往下依次执行的过程中,一旦遇到while语句,首先去判断条件表达式是否成立,如果成立,则执行循环体和循环之后的操作表达式;如果条件表达式不成立,则直接跳过整个while语句继续执行后面的语句

与if语句的区别:在条件都成立的前提下,if语句只执行一次,但是while语句至少会执行一次

代码演示:

#举例:打印10遍helloworld
"""
while True:
    print("hello world")
"""
​
#解决:考虑次数
#1.定义一个变量,用于记录循环的次数
num = 0
#2.判断num和一个指定值之间的大小,只需要保证次数为需求中的次数
while num < 10:
    #3.循环体
    print("hello world")
    #4.循环之后的操作表达式,控制循环的次数
    print(num)
    num += 1
​
num1 = 10
while num1 > 0:
    print("hello world~~~~")
    num1 -= 1

2.2死循环

代码演示:

#死循环
"""
while True:
    pass
​
while 1:
    pass
"""

2.3else分支

if 表达式:

​ 语句

else:

​ 语句

while 表达式:

​ 语句

else:

​ 语句

代码演示:

#需求:打印0~9的数字
num1 = 0
while num1 < 10:
    print(num1)
    num1 += 1
else:
    print("~~~~~~")
​
num2 = 0
while num2 > 10:
    print(num2)
    num2 += 1
else:
    print("hello ~~~~~")
​

总结:

​ a.在if-else语句中,当条件为假的时候,else才有被执行的机会

​ b.在while-else语句中

​ 当条件为真:先执行完循环,最后才执行else

​ 当条件为假:直接执行else

2.4练习

代码演示:

#1.打印1~100之间所有的偶数
#方式一
num1 = 1
while num1 <= 100:
    if num1 % 2 == 0:
        print(num1)
    num1 += 1
​
#方式二
num2 = 2
while num2 <= 100:
    print(num2)
    num2 += 2
​
​
#2.求1~100之间能被5整除的数的和
num3 = 1
#新定义一个变量,用于记录每次获取到的符合条件的数的和
sum3 = 0
while num3 <= 100:
    if num3 % 5 == 0:
        print(num3)
        sum3 += num3
    num3 += 1
​
print(sum3)
​
​
#3.求1~100之间能被6整除的数的个数
num4 = 1
count4 = 0
while num4 <= 100:
    if num4 % 6 == 0:
        count4 += 1
    num4 += 1
​
​
#4.求10的阶乘
num5 = 1
sum5 = 1
while num5 <= 10:
    print(num5)
    sum5 *= num5
    num5 += 1
​
print(sum5)

2.5嵌套while语句

代码演示:

#打印九九乘法表
"""                                                     行           列
1x1=1                                                   1             1
1x2=2 2x2=4                                             2             2
1x3=3 2x3=6 3x3=9                                       3              3
.....
​
1x9=9 2x9=18 3x9=27  ........   8x9=72  9x9=81          9               9
​
规律:
行的取值范围:1~9
列的取值范围:1~行数
​
列随着行的变化而变化的
列的最大值和行数相等
"""
#实现:嵌套循环
#外层循环:控制行
line = 1
while line <= 9:
    #循环体
    #内层循环:控制列
    colum = 1
    while colum <= line:
        print("%dx%d=%d"%(colum,line,line*colum),end=" ")
        colum += 1
    #换行
    print("")
    line += 1
​
"""
            行   列
*           1    1
**
***
****
*****       5    5
"""
#外层循环:控制行
i = 1
while i <= 5:
    #内层循环:控制列
    j = 1
    while j <= i:
        print("*",end="")
        j += 1
    print("")
    i += 1
"""
    *
   ***
  *****
 *******
"""

猜你喜欢

转载自blog.csdn.net/printZLO/article/details/81261229