文章目录
- 判断语句
- 布尔类型和比较运算符
- 判断语句: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语句
-
基本格式
python中通过缩进控制代码块归属
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!")
-
嵌套判断语句
# 嵌套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循环
- 基本语法
i = 1
while i < 100:
print("循环第%d次" % i)
i += 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循环
- 基本语法
待处理数据集必须是一个序列,序列指可以一个个访问的组织形式,有点像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}")
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]
- 临时变量
循环变量按理说作用域是在循环内的,但是外面直接拿,虽然不规范、虽然报警告,但拿到没问题# range 语法1 for i in range(5): # 0 1 2 3 4 print(i,end=' ') print() print(i) # 4
- 嵌套
核心还是缩进的控制,也就是格式控制 - 循环控制语句
continue
和break
没说的,和其他语言一样
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 # 余额不足,跳出循环
函数
- 基本语法
def sum(a, b): return a + b # 返回值,可以是简单表达式,返回语句之后的语句不再执行 print(sum(1, 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
- 函数的嵌套调用
def print1(): print("Hello World") def print2(): print("Hello World2") print1() # 调用print1函数 print2() # Hello World2(换行)Hello World
- 全局变量和局部变量
函数内部定义的变量成为局部变量,外部访问将报错""" 全局变量和局部变量 """ 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有没有解决的插件,改天看看。