Python 学习2 判断、循环、函数

文章目录

  • 判断语句
    • 布尔类型和比较运算符
    • 判断语句:if语句
  • 循环语句
    • while循环
    • for循环
  • 函数
  • 小结


2023.10.29 周六
老规矩贴一下链接 B站 - 黑马程序员2022python教程

判断语句

布尔类型和比较运算符

Python中布尔类型的基础定义和比较运算符的使用,包括相等==、不相等!=、大于、小于、大于等于、小于等于等。

print("10>5:", 10 > 5)
print("10==5:", 10 == 5)
print("10<5:", 10 < 5)
print("bool(0):", bool(0))  # 0为False
print("bool(''):", bool(""))  # 空字符串为False
print("bool(None):", bool(None))  # None为False
print("bool([]):", bool([]))  # 空列表为False
print("bool(()):", bool(()))  # 空元组为False
print("bool({}):", bool({}))  # 空字典为False
print("bool(0.0):", bool(0.0))  # 0.0为False
print("bool(0j):", bool(0j))  # 0j为False
print("bool('Hello'):", bool("Hello"))  # 非空字符串为True
print("bool(15):", bool(15))  # 非0数字为True
print("bool(['apple', 'cherry', 'banana']):", bool(["apple", "cherry", "banana"]))  # 非空列表为True
print("10.5<=10:", 10.5 <= 10)
# print("10.5>=-1j:", 10.5>=-1j) # TypeError: '>=' not supported between instances of 'float' and 'complex'
print("10.5==10:", 10.5 == 10)  # False
print("'Hello'=='hello':", "Hello" == "hello")  # False 也可以比较字符串,大小写敏感
print("'a'>'b':", "a" > "b")  # False 比较单个字符,按照ASCII码比较,
print(ord('a') - ord('b'))# py中获取字符的ASCII码用ord()函数,不像Java中直接int('a')=97,或者'a' - 'b'=-1

判断语句:if语句

  1. 基本格式
    python中通过缩进控制代码块归属
    Python 学习2 判断、循环、函数_第1张图片
    Python 学习2 判断、循环、函数_第2张图片

    age = 18
    # if
    if age >= 18:
        print("You are old enough to vote!")
    print("Have you registered to vote yet?")
    
    # if-else
    if age >= 18:
        print("You are old enough to vote 2!")
    else:
        print("You are not old enough to vote 2!")
    print("This is outside the if statement! 2")
    
    # if-elif-else
    age = 12
    if age < 0:
        print("You are not born yet!")
    elif age < 4:
        print("You are a baby!")
    elif age < 13:
        print("You are a child!")
    elif age < 20:
        print("You are a teenager!")
    elif age < 65:
        print("You are an adult!")
    else:
        print("You are an elder!")
    
  2. 嵌套判断语句

    # 嵌套if
    if int(input("你的身高是?")) <= 120:
        print("可以免费乘坐过山车")
    else:
        if int(input("你的vip等级是?")) >= 3:
            print("可以免费乘坐过山车")
        else:
            print("需要购买门票")
            
    age = 20
    year = 3
    level = 1
    if age >= 18:
        print("你是成年人")
        if age < 30:
            print("你的年龄达标了")
            if year > 2:
                print("恭喜你,入职时间达标,可以领取礼物")
            elif level > 3:
                print("恭喜你,级别达标,可以领取礼物")
            else:
                print("不好意思,尽管年龄达标,但是入职时间和级别都不达标。")
        else:
            print("不好意思,年龄太大了")
    else:
        print("不好意思,年龄太小了")
    

循环语句

while循环

  1. 基本语法
    Python 学习2 判断、循环、函数_第3张图片
i = 1
while i < 100:
    print("循环第%d次" % i)
    i += 1 # 循环的出口,否则会死循环
  1. 嵌套
i = 1
while i <= 100:
    print(f"今天是第{i}天,准备表白......")
    j = 1
    while j <= 10:
        print(f"送给小美第{j}只玫瑰花")
        j += 1
        print("小美,我喜欢你")
    i += 1
print(f"坚持到第{i - 1}天,表白成功!")

for循环

  1. 基本语法
    在这里插入图片描述
    待处理数据集必须是一个序列,序列指可以一个个访问的组织形式,有点像Java的迭代器。python序列包括数字序列、字符串、列表、元组等。
    for i in range(10):
        print(i)
    
    s = "Hello World"
    count = 0
    for c in s:
        if c == 'o':
            count += 1
        print(c)
    print(f"count(o) = {count}")
    
  2. range
    目前看是左闭右开的
    # range 语法1
    for i in range(5): # 0 1 2 3 4
        print(i,end=' ')
    print()
    
    # range 语法2
    for i in range(5, 10): # 5 6 7 8 9
        print(i,end=' ')
    print()
    
    # range 语法3
    for i in range(0, 10, 3): # 0-10,步长为3, 0 3 6 9
        print(i,end=' ')
    print()
    
    # range 语法4
    for i in range(-10, -100, -30): # -10 -40 -70
        print(i,end=' ')
    print()
    
    # range 语法5
    a = ['Mary', 'had', 'a', 'little', 'lamb']
    for i in range(len(a)): # 0 1 2 3 4
        print(i, a[i],end=' ')
    print()
    
    # range 语法6
    print(range(10)) # range(0, 10)
    
    # range 语法7
    print(list(range(5))) # [0, 1, 2, 3, 4]
    
  3. 临时变量
    循环变量按理说作用域是在循环内的,但是外面直接拿,虽然不规范、虽然报警告,但拿到没问题
    # range 语法1
    for i in range(5): # 0 1 2 3 4
        print(i,end=' ')
    print()
    print(i) # 4
    
  4. 嵌套
    核心还是缩进的控制,也就是格式控制
  5. 循环控制语句 continuebreak
    没说的,和其他语言一样
    continue表示不执行本次循环下面的内容了,直接执行下一次循环
    break表示跳出当前循环,继续执行循环之后的语句
    import random
    
    # 先初始化金钱数量
    money = 10000
    
    for i in range(1, 21):  # 1-20号员工
        score = random.randint(1, 10)  # 随机生成1-10的整数
        if score < 5:  # 绩效分小于5,不发工资
            print(f"员工{i}绩效分{score}不满足,不发工资,下一位")
            continue
    
        # 判断余额是否足够
        if money >= 1000:
            money -= 1000
            print(f"员工{i},满足条件发放工资1000.公司账户余额:{money}")
        else:
            print(f"余额不足,当前余额:{money}元,不足以发工资,等老板充钱")
            break  # 余额不足,跳出循环
    

函数

  1. 基本语法
    在这里插入图片描述
    def sum(a, b):
        return a + b # 返回值,可以是简单表达式,返回语句之后的语句不再执行
    
    print(sum(1, 2)) # 调用函数并打印结果
    
  2. None
    """这两个函数输出相同"""
    def sum(a, b):
        print(a + b) # 无返回值
    
    
    sum(1, 2)  # 3
    print(sum(1, 2))  # 3(换行)None
    
    def sum(a, b):
        print(a + b)
        return None
    
    
    sum(1, 2)  # 3
    print(sum(1, 2))  # 3(换行)None
    
  3. 函数的嵌套调用
    def print1():
        print("Hello World")
    
    
    def print2():
        print("Hello World2")
        print1() # 调用print1函数
    
    
    print2() # Hello World2(换行)Hello World
    
  4. 全局变量和局部变量
    函数内部定义的变量成为局部变量,外部访问将报错
    """
    全局变量和局部变量
    """
    
    total = 0  # 这是一个全局变量
    
    
    def sum(arg1, arg2):
        # 局部变量
        total = arg1 + arg2
        print("函数内是局部变量:", total)
        return total
    
    
    def sum2(arg1, arg2):  # 不能同名sum,否则下面调用实际会把前面的sum函数覆盖掉,如果def 函数a,print a,def函数b,对应print b这样的顺序倒是没问题。。
        # 局部变量
        global total  # global使得函数内的total实际指向全局的total,但是global total必须是单独的声明,不能同时赋值
        total = arg1 + arg2
        print("global会指向全局的total:", total)
        return total
    
    
    print(f"此时这两个total没关系,{sum(10, 20)}")
    print(f"global使得函数内的total实际指向全局的total,{sum2(10, 20)}")
    print("函数外是全局变量:", total)
    

小结

进度:今天看的快了那么一点点,进度又推了六分之一多点,不过看着100节后面的好像和基本语法没啥关系了,也就是说,如果周一有空看,明天也可以算看完了。
感想:没啥感想,复制粘贴,最大的问题是我用的IDEA在开发python,发现格式化的时候如果有语法上的错误,比如说用了中文的”),那么格式化是不生效的,偏偏python对于格式符号很少而用缩进格式替代了,这就有点难蚌。。不知道pycharm是不是这样或者idea有没有解决的插件,改天看看。

你可能感兴趣的:(后端,#,Python,python,学习,开发语言,intellij,idea)