8天学习python笔记03
day03 Python基础
目标:掌握Python基础中的必备语法知识。
1.循环语句
- while循环
while 条件:
...
...
...
print("123")
while 条件:
...
...
...
print("456")
1.1循环语句基本使用
示例1:
print("开始")
while True:
print("Alex是一个杜比")
print("结束")
#输出:
开始
Alex是一个杜比
Alex是一个杜比
Alex是一个杜比
...
示例2:
print("开始")
while 1 > 2:
print("如果今天下雨了,就休息")
print("结束")
#输出:
开始
结束
示例3:
print("开始")
data = True
while data:
print("如果今天下雨了,就休息")
print("结束")
#输出:
开始
如果今天下雨了,就休息
如果今天下雨了,就休息
如果今天下雨了,就休息
...
示例4:
print("开始")
flag = True
while flag:
print("滚滚长江东逝水。")
flag = False
print("结束")
#输出:
开始
滚滚长江东逝水
结束
示例5:
print("开始")
num = 1
while num < 3:
print("滚滚长江东逝水。")
num = 5
print("结束")
#输出:
开始
滚滚长江东逝水。
结束
示例6:
print("开始")
num = 1
while num < 5:
print("生命有力量。")
num = num + 1
print("结束")
#输出:
开始
生命有力量。
生命有力量。
生命有力量。
生命有力量。
结束
练习题:重复三次输出我爱我的祖国
num = 1
while num < 4:
print("我爱我的祖国")
num = num + 1
#输出:
我爱我的祖国
我爱我的祖国
我爱我的祖国
1.2 综合小案例:
请实现用户登录系统,如果密码错误则反复提示让用户重新输入,直到输入正确。
print("开始进入系统")
data = True
while data:
user = input("请输入用户名:")
pwd = input("请输入密码:")
if user == "alex" and pwd == "123":
print("欢迎进入系统")
data = False
else:
print("用户名或密码错误,请重新输入:")
print("退出系统")
练习题
1.补充代码实现
猜数字,设定一个理想数字比如: 66,一直提示让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有输入等于66, 显示猜测结果正确,然后退出循环。
number = 66
while True:
num = int(input("请输入数字:"))
if num > number:
print("猜测大了.")
elif num < number:
print("猜测小了.")
else:
print("猜测结果正确")
break # 退出循环
2.使用循环输出1-100所有整数。
num = 1
while num <= 100:
print(num, end=",")
num = num + 1
3.使用循环输出123456 8910,即: 10以内 除7 以外的整数。
num = 1
while num < 11:
if num == 7:
pass
else:
print(num, end=",")
num = num + 1
num = 1
while num < 11:
if num!= 7:
print(num)
num = num + 1
4.输出1-100内的所有奇数。
num = 1
while num < 101:
if num%2 == 1:
print(num)
num = num + 1
5.输出1-100内的所有偶数。
num = 1
while num < 101:
if num%2 == 0:
print(num)
num = num + 1
6.求1-100的所有整数的和。
sum = 0
num = 1
while num < 101:
sum = sum + num
num = num + 1
print(sum)
7.输出10-1所有整数。
num = 10
while num > 0:
print(num)
num = num -1
思考题:求 1~100所有整数这样的结果:1 - 2 + 3 - 4 + 5 - 6 = ?
num = 1
expression = "" # 用于构建表达式字符串
# 处理第一个数字(1)
expression += "1"
# 使用 while 循环遍历从2到100(包括100)
num = 2
while num <= 100:
if num % 2 == 0: # 如果num是偶数,则减去该数
expression += f" - {num}"
else: # 如果num是奇数,则加上该数
expression += f" + {num}"
num += 1 # 增加num以继续下一个数字
print(f"表达式是: {expression}")
1.3 break
break ,用于在while循环中帮你终止循环
示例:
print("开始")
while True:
print("1")
break
print("2")
print("结束")
#输出
开始
1
结束
示例:
print("开始")
while True:
print("红旗飘飘")
break
print("剑鞘出")
print("结束")
#输出
开始
红旗飘飘
结束
示例:
print("开始")
i = 1
while True:
print(i)
i = i + 1
if i == 101:
break
print("结束")
#输出
开始
1
2
3
...
100
结束
示例:
print("开始运行系统")
while True:
user = input("请输入用户名:")
pwd = input("请输入密码:")
if user == "peiqi" and pwd =="123":
print("正确,登录成功")
break
else:
print("用户名或密码错误,请重新登录")
print("系统结束")
#输出
开始运行系统
>>>用户名
>>>密码
正确,登录成功
系统结束
不正确,一直循环
所以以后写代码的时候,结束循环可以通过条件判断和break关键字,两种方式使用无好坏之分,只要能实现系统功能。
1.4 continue
continue,在循环中用于,结束本次循环,开始下一次循环。
print("开始")
while True:
print("1")
continue
print("2")
print("3")
print("结束")
#输出
1
1
1
...
示例:
print("开始")
while True:
print("红旗飘飘")
continue
print("剑鞘出")
print("结束")
#输出
红旗飘飘
红旗飘飘
红旗飘飘
...
示例:
print("开始")
i = 1
while i < 101:
if i == 4:
i = i + 1
continue
print(i)
i = i + 1
print("结束")
#输出
开始
1
2
3
5
6
...
示例:
print("开始")
i = 1
while True:
if i == 4:
i = i + 1
continue # 当 i == 4 时,则执行 i = i + 1,将 i 增加到 5 ,跳过本次循环的剩余部分,直接进入下一次循环
print(i)
i = i + 1
if i == 101:
break
print("结束")
#输出
开始
1
2
3
5
6
...
100
结束
break 与 continue 的区别
break:完全终止循环,跳出循环体,执行循环后面的代码。continue:跳过当前循环体中剩余的语句,直接进入下一次循环(如果还有下一次的话)
注意:
break只能用于循环内部,不能单独出现在函数、类或其他非循环结构中。- 如果在一个嵌套循环中使用
break,它只会终止最内层的那个循环,而不会影响外层循环。
1.5 while else
当while后的条件不成立时,else中的代码就会执行。
while 条件:
代码
else:
代码
while False:
pass
else:
print(123)
#输出
123
num = 1
while num < 5:
print(num)
num = num + 1
else:
print(666)
#输出
1
2
3
4
666
num = 1
while num < 5:
print(num)
num = num + 1
break
else:
print(666)
#输出
1
2.字符串格式化
字符串格式化,使用更便捷的形式实现字符的拼接。
% , format(学习推荐) , f
2.1 %
2.1.1基本格式化操作
name = input("输入名字:")
text = "我是%s,今年18岁" %name
print(text)
#输出
输入名字:佩奇
我是佩奇,今年18岁
常用↓:方式便捷
name = "佩奇"
age = 18
# text = "我是%s,今年%s岁" %("佩奇", 18)
# text = "我是%s,今年%d岁" %(name, age)
text = "我是%s,今年%s岁" %(name, age)
print(text)
#输出
我是佩奇,今年18岁
text = "%(name)s 你什么时候过来?" %{"name":"Alex"}
print(text)
#输出
Alex 你什么时候过来?
text = "%(name)s 你什么时候过来? %(user)s 在不在" % {"name": "Alex", "user": "peiqi"}
print(text)
#输出
Alex 你什么时候过来? peiqi 在不在
text = "我叫%s,今年%d岁"
data = text % ("佩奇", 20)
print(data)
#输出
我叫佩奇,今年20岁
2.1.2百分比
text = "%s,这个电影我下载了99%%了,居然断网了。" %"兄弟"
print(text)
#输出
兄弟,这个电影我下载了99%了,居然断网了。
一旦字符串格式化中出现百分比的显示,一定要加%%来实现输出%。
2.2 format(初学推荐)
text = "我叫{0},今年18岁".format("peiqi")
# text = "我叫{0},今年{1}岁".format("peiqi", "18")
print(text)
#输出
我叫peiqi,今年18岁
text = "我叫{0},今年{1}岁,真是姓名是{0}".format("peiqi", "18")
#字符串格式化可以复用!
#输出
我叫peiqi,今年18岁,真是姓名是peiqi
在python,{}中不加0默认第一个是{0}
text = "我叫{},今年{}岁,真是姓名是{}".format("peiqi", "18", "peiqi")
print(text)
#输出
我叫peiqi,今年18岁,真是姓名是peiqi
text = "我叫{n1},今年{age}岁,真是姓名是{n1}".format(n1="peiqi", age="18")
print(text)
#输出
我叫peiqi,今年18岁,真是姓名是peiqi
text = "我叫{0},今年{1}岁"
data = text.format("peiqi", 666)
print(data)
#输出
我叫peiqi,今年666岁
2.3 f
到python3.6版本,更便捷。
action = "跑步"
text = f"他喜欢{action}, 跑完步就出汗"
print(text)
#输出
他喜欢跑步, 跑完步就出汗
name = "佩奇"
age = 18
text = f"他的名字叫{name},今年{age}岁"
print(text)
#输出
他的名字叫佩奇,今年18岁
# 在python3.8引入特殊功能
name = "佩奇"
text = f"他的名字叫{name}, 今年{19 + 2 =}岁"
print(text)
#输出
他的名字叫佩奇, 今年19 + 2 =21岁
# 进制转换
二进制(b)
八进制(o)
十六进制(x)
#例如:
v2 = f"他今年{22:#b}岁"
print(v2)
#输出
他今年0b10110岁
#理解f功能
name = "alex"
text = f"我是{name.upper()}, 我喜欢跑步。"
print(text)
#输出
我是ALEX, 我喜欢跑步。
3.运算符
- 算数运算符
加法运算符(+):将两个数相加。
减法运算符(-):将两个数相减。
乘法运算符(*):将两个数相乘。
除法运算符(/):将两个数相除,结果为浮点数。
取余运算符(%):返回两个数相除的余数。
幂运算符(**):返回一个数的指数值。
取整运算符(//):返回两个数相除的整数部分。
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333333333333335
print(a % b) # 1
print(a ** b) # 1000
print(a // b) # 3
- 比较运算符
用于比较两个值之间的关系,返回True或False。 Python中的比较运算符包括:==、!=、>、<、>=、<=。
等于运算符(==): 判断两个值是否相等。
不等于运算符(!=): 判断两个值是否不相等。
大于运算符(>): 判断左侧值是否大于右侧值。
小于运算符(<): 判断左侧值是否小于右侧值。
大于等于运算符(>=):判断左侧值是否大于等于右侧值。
小于等于运算符(<=):判断左侧值是否小于等于右侧值。
a = 10
b = 3
print(a == b) # False
print(a != b) # True
print(a > b) # True
print(a < b) # False
print(a >= b) # True
print(a <= b) # False
注意:python不支持<>
- 赋值运算符
用于将值分配给变量。 Python中的赋值运算符包括:=、+=、-=、*=、/=、%=、**=、//=
等于运算符(=):将右侧的值分配给左侧的变量。
加等于运算符(+=):将左侧变量的值加上右侧的值,并将结果分配给左侧变量。
减等于运算符(-=):将左侧变量的值减去右侧的值,并将结果分配给左侧变量。
乘等于运算符(*=):将左侧变量的值乘以右侧的值,并将结果分配给左侧变量。
除等于运算符(/=):将左侧变量的值除以右侧的值,并将结果分配给左侧变量。
取余等于运算符(%=):将左侧变量的值取余右侧的值,并将结果分配给左侧变量。
幂等于运算符(**=):将左侧变量的值的指数幂等于右侧的值,并将结果分配给左侧变量。
取整等于运算符(//=):将左侧变量的值除以右侧的值,向下取整,并将结果分配给左侧变量。
c = a + b 将 a + b的运算结果赋值给为c
c += a 等效于 c = c + a
c -= a 等效于 c = c - a
c *= a 等效于 c = c * a
c /= a 等效于 c = c / a
c %= a 等效于 c = c % a
c **= a 等效于 c = c ** a
c //= a 等效于 c = c // a
num = 1
while num < 100:
print(num)
# num = num + 1
num += 1
- 成员运算,例如是否包含
成员运算符用于检查序列中是否存在指定的值。 Python中的成员运算符包括:in、not in。
in :如果在指定序列中能找到值 返回 True
not in:如果在指定序列中不能找到值 返回 False
a = [1, 2, 3, 4, 5]
print(3 in a) # True
print(6 not in a) # True
- 逻辑运算符,例如:且或非
逻辑运算符:用于组合条件语句。 Python中的逻辑运算符包括:and、or、not。
与运算符(and):如果两个条件都为True,则返回True。
或运算符(or):如果两个条件中至少一个为True,则返回True。
非运算符(not):如果条件为False,则返回True,否则返回False。
a = 3
b = 2
c = 1
print(a > b and a > c) # True
print(a > b or a < c) # True
print(not(a > b and a > c)) # False
3.1 运算符优先级
- 算数运算符 优先级 大于 比较运算符
if 2 + 10 > 11:
print("真")
else:
print("假")
- 比较运算符 优先级 大于 逻辑运算符
if 1>2 and 2<10:
print("成立")
else:
print("不成立")
#输出
不成立
- 逻辑运算符内部 三个优先级 not>and>or
#1 表示 True
# not 1 = false
if not 1 and 1>2 or 3 == 8: #False and False 结果是 False
print("真")
else:
print("假")
从高到低:加减乘除>比较>not and or
3.2 面试题
逻辑运算中: and or
v1 = name == "alex" and pwd == "123"
# v1 = True and False
if name == "alex" and pwd == "123":
pass
v2 = "peiqi" and "alex"
# 第一步:将and前后的值转换为布尔值True and True
# 第二步:判断本次操作取决于谁? 由于前面的是True,所以本次逻辑判断取决于后面的值。
# 所以,后面的值等于多少最终结果就是多少。 v2 = "alex"
v3 = "" and "alex"
# 第一歩:将and前后的值转换为布尔值False and True,""空字符串,代表False
# 第二步:判断本次操作取决于谁? 由于前面的是False,所以本次逻辑判断取决于前面的值。
# 所以,前面的值等于多少最终结果就是多少。 v3 = ""
v4 = 1 or 8
# 第一步:将or前后的值转换为布尔值True or True
# 第二步:判断本次操作取决于谁? 由于前面的是True,所以本次逻辑判断取决于前面的值。
# 所以,前面的值等于多少最终结果就是多少。 v4 = 1
v5 = 0 or 8
# 第一步:将or前后的值转换为布尔值False or True
# 第二步:判断本次操作取决于谁? 由于前面的是False,所以本次逻辑判断取决于后面的值。
# 所以,后面的值等于多少最终结果就是多少。 v5 = 8
练习题
v1 = 1 or 2 # v1 = 1
v2 = -1 or 3 # v2 = -1
v3 = 0 or -1 # v3 = -1
v4 = 0 or 100 # v4 = 100
v5 = "" or 10 # v5 = 10
v6 = "peiqi" or "" #v6 = "peiqi"
print(v1,v2,v3,v4,v5,v6)
#输出
1 -1 -1 100 10 peiqi
v1 = 4 and 8 # v1 = 8
v2 = 0 and 6 # v2 = 0
v3 = -1 and 88 # v3 = 88
v4 = "" and 7 # v4 = ""
v5 = "佩奇" and "" # v5 = ""
v6 = "" and 0 # v6 = ""
v7 = 0 and "中国" # v7 = 0
print(v1, v2, v3, v4, v5, v6, v7)
#输出
8 0 88 0
# 面对多个 or 和 and 先计算 and 再 计算 or
v1 = 0 or 4 and 3 or 7 or 9 and 6 # v1 = 3
# v1 = 0 or 3 or 7 or 6
# v1 = 3
v2 = 8 or 3 and 4 or 2 and 0 or 9 and 7
# v2 = 8 or 4 or 0 or 7
# v2 = 8
先计算not,再计算and,再计算or
v3 = not 8 or 3 and 4 or 2
# v3 = false or 4 or 2
# v3 = 4
总结
- while循环语句
while 循环用于在条件为 True 时重复执行代码块,直到条件变为 False
- break和continue关键字的作用
# break 和 continue 关键字的作用
break:立即退出最近的循环(for 或 while),继续执行循环之后的代码。
continue:跳过当前循环的剩余部分,直接进入下一次循环。
- 三种字符串格式化的方式
name = "Alice"
print("Hello, %s!" % name)
print("Hello, {}!".format(name))
print(f"Hello, {name}!")
- 基本运算符(逻辑运算符涉及的相关面试题)
# 逻辑运算符:and、or、not
and:两个操作数都为 True 时返回 True,否则返回 False。
or:任意一个操作数为 True 时返回 True,否则返回 False。
not:反转布尔值,not True 返回 False,not False 返回 True
作业:
- 判断下列逻辑语句的True,False
v1 = 1 > 1 or 3 < 4 or (4 > 5 and 2 > 1 and 9 > 8) or 7 < 6
# v1 = False or True or (False and True and True) or False
# v1 = False or True or False or False
# v1 = True
print(v1) # 输出:True
v2 = not 2 > 1 and 3 < 4 or (4 > 5 and 2 > 1 and 9 > 8) or 7 < 6
# v2 = not True and True or (False and True and True) or False
# v2 = False and True or False or False
# v2 = False or False or False
# v2 = False
print(v2) # 输出:False
- 实现用户登录系统,并且要支持连续三次输错之后直接退出,并且在每次输错误时显示剩余错误次数(提示:使用字符串格式化)
count = 3
while count > 0:
count -= 1
user = input("请输入用户名:")
pwd = input("请输入密码:")
if user == "alex" and pwd == "123":
print("登录成功!")
break
else:
message = f"用户名或密码输入错误,请重新输入。剩余次数:{count}"
print(message)
else:
print("系统已退出。")
-
猜年龄游戏
要求:允许用户最多尝试3次,3次没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出。
count = 3
while count > 0:
count -= 1
num = input("请输入年龄:")
if num == "66":
print("恭喜猜对了。")
break
else:
print(f"剩余次数{count}")
print("退出")
-
猜年龄游戏升级版本
要求:允许用户最多尝试3次,每尝试3次后,如果没猜对,就问用户是否继续玩,如果回答Y,就继续让猜3次,以此往复,如果回答N,就退出程序,如果猜对了,就直接退出。
count = 3
while count > 0:
count -= 1
num = input("请输入年龄:")
if num == "66":
print("恭喜猜对了。")
break
else:
print("猜错了,"f"剩余次数{count}")
if count == 0:
print("请问是否继续玩?回答Y:继续,回答N:退出")
choice = input("请输入Y/N:")
if choice == "Y":
count = 3
continue
elif choice == "N":
break
else:
print("内容输入错误")
break
print("程序结束")

浙公网安备 33010602011771号