欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

寒假你想怎么过之Python初步(一)

时间:2023-08-30

**不重要的内容:**我只是一名大一学生,还有很多的不足。这些文章只是我的学习笔记,谈不上知识原创分享。如文章内容有知识性错误欢迎指出;如果您觉得排版有问题,影响阅读,也可指出,欢迎你的阅读和评论,,谢谢。文末留有我的博客,会不定期更新,一起进步,一起优秀呀。(因为该内容转载自我的博客,所以没有添加一些好玩的表情包)

文章目录

一、输出

格式化输出

1.1 格式化符号1.2 体验1.3 转义字符1.4 结束符 重点一、输入

1.2 输入的语法1.3 输入的特点 重点一、了解条件语句二、if 语法

2.1 语法2.2 快速体验 三、实例:上网

3.1 简单版3.2 进阶版 四、if...else...

4.1 语法4.2 实用版:网吧上网 五、多重判断

5.1 语法5.2 实例:工龄判断 六、if嵌套

6.1 语法6.2 实例:坐公交

6.2.1 判断是否能上车6.2.2 判断是否能坐下 七、应用:猜拳游戏

三目运算符 运算符的分类

1、算数运算符2、赋值运算符3、复合赋值运算符4、比较运算符5、逻辑运算符

5.1 拓展 总结

循环(while与for)

while

while 循环嵌套

打印正方形星号九九乘法表while...else... for循环

for...else...

while...else...与for...else中的break和continue用法(以后者为例) 一、输出

作用:输出内容

print('hello Python')age = 18print(age)# 需求:输出“今年我的年龄是18岁”

格式化输出

所谓的格式化输出即按照一定的格式输出内容。

1.1 格式化符号 格式符号转换%s字符串%d有符号的十进制整数%f浮点数%c字符%u无符号十进制整数%o八进制整数%x十六进制整数(小写ox)%X十六进制整数(大写OX)%e科学计数法(小写’e’)%E科学计数法(大写’E’)%g%f和%e的简写%G%f和%E的简写

技巧

%03d,表示输出的整数显示位数,不足以0补全,超出当前位数则原样输出%.2f,表示小数点后显示的小数位数。 1.2 体验

格式化字符串除了%s,还可以写为f'{表达式}'

age = 18 name = 'TOM'weight = 75.5student_id = 1# 我的名字是TOMprint('我的名字是%s' % name)# 我的学号是0001print('我的学号是%4d' % student_id)# 我的体重是75.50公斤print('我的体重是%.2f公斤' % weight)# 我的名字是TOM,今年18岁了print('我的名字是%s,今年%d岁了' % (name, age))# 我的名字是TOM,明年19岁了print('我的名字是%s,明年%d岁了' % (name, age + 1))# 我的名字是TOM,明年19岁了print(f'我的名字是{name}, 明年{age + 1}岁了')

1.3 转义字符

n:换行。t:制表符,一个tab键(4个空格)的距离。 1.4 结束符

注意

print('输出的内容', end="n")

在Python中,print(), 默认自带end="n"这个换行结束符,所以导致每两个print直接会换行展示,用户可以按需求更改结束符。

重点

格式化符号

%s:格式化输出字符串%d:格式化输出整数%f:格式化输出浮点数 f-字符串

f’{表达式}’ 转义字符

n:换行t:制表符 print结束符

print('内容', end="")

一、输入

在Python中,程序接收用户输入的数据的功能即是输入。

1.2 输入的语法

input("提示信息")

1.3 输入的特点

当程序执行到input,等待用户输入,输入完成之后才继续向下执行。在Python中,input接收用户输入后,一般存储到变量,方便使用。在Python中,input会把接收到的任意用户输入的数据都当做字符串处理。

password = input('请输入您的密码:')print(f'您输入的密码是{password}')# print(type(password))

重点

输入功能

input(‘提示文字’) 输入的特点

一般将input接收的数据存储到变量input接收的任何数据默认都是字符串数据类型 一、了解条件语句

假设一个场景:

同学们这个年龄去过网吧吗?去网吧进门想要上网必须做的一件事是做什么?(考虑重点)为什么要把身份证给工作人员?是不是就是为了判断是否成年?是不是如果成年可以上网?如果不成年则不允许上网?

其实这里所谓的判断就是条件语句,即条件成立执行某些代码,条件不成立则不执行这些代码。

二、if 语法 2.1 语法

if 条件: 条件成立执行的代码1 条件成立执行的代码2 ......

2.2 快速体验

if True: print('条件成立执行的代码1') print('条件成立执行的代码2')# 下方的代码没有缩进到if语句块,所以和if条件无关print('我是无论条件是否成立都要执行的代码')

三、实例:上网

需求分析:如果用户年龄大于等于18岁,即成年,输出"已经成年,可以上网"。

3.1 简单版

age = 20if age >= 18: print('已经成年,可以上网')print('系统关闭')

3.2 进阶版

新增需求:用户可以输出自己的年龄,然后系统进行判断是否成年,成年则输出"您的年龄是’用户输入的年龄’,已经成年,可以上网"。

# input接受用户输入的数据是字符串类型,条件是age和整型18做判断,所以这里要int转换数据类型age = int(input('请输入您的年龄:'))if age >= 18: print(f'您的年龄是{age},已经成年,可以上网')print('系统关闭')

四、if…else…

作用:条件成立执行if下方的代码; 条件不成立执行else下方的代码。

思考:网吧上网的实例,如果成年,允许上网,如果不成年呢?是不是应该回复用户不能上网?

4.1 语法

if 条件: 条件成立执行的代码1 条件成立执行的代码2 ......else: 条件不成立执行的代码1 条件不成立执行的代码2 ......

4.2 实用版:网吧上网

age = int(input('请输入您的年龄:'))if age >= 18: print(f'您的年龄是{age},已经成年,可以上网')else: print(f'您的年龄是{age},未成年,请自行回家写作业')print('系统关闭')

注意:如果条件成立执行了某些代码,那么其他的情况的代码将不会执行。

五、多重判断

思考:中国合法工作年龄为18-60岁,即如果年龄小于18的情况为童工,不合法;如果年龄在18-60岁之间为合法工龄;大于60岁为法定退休年龄。

5.1 语法

if 条件1: 条件1成立执行的代码1 条件1成立执行的代码2 ......elif 条件2:条件2成立执行的代码1 条件2成立执行的代码2 ............else: 以上条件都不成立执行执行的代码

多重判断也可以和else配合使用。一般else放到整个if语句的最后,表示以上条件都不成立的时候执行的代码。

5.2 实例:工龄判断

age = int(input('请输入您的年龄:'))if age < 18: print(f'您的年龄是{age},童工一枚')elif (age >= 18) and (age <= 60): print(f'您的年龄是{age},合法工龄')elif age > 60: print(f'您的年龄是{age},可以退休')

拓展:age >= 18 and age <= 60可以化简为18 <= age <= 60。

六、if嵌套

思考:坐公交:如果有钱可以上车,没钱不能上车;上车后如果有空座,则可以坐下;如果没空座,就要站着。怎么书写程序?

6.1 语法

if 条件1:条件1成立执行的代码 条件1成立执行的代码 if 条件2: 条件2成立执行的代码 条件2成立执行的代码

注意:条件2的if也是处于条件1成立执行的代码的缩进关系内部。

6.2 实例:坐公交 6.2.1 判断是否能上车

"""1、如果有钱,则可以上车 2、上车后,如果有空座,可以坐下 上车后,如果没有空座,则站着等空座位如果没钱,不能上车"""# 假设用 money = 1 表示有钱, money = 0表示没有钱money = 1if money == 1: print('土豪,不差钱,顺利上车')else: print('没钱,不能上车,追着公交车跑')

6.2.2 判断是否能坐下

"""1、如果有钱,则可以上车 2、上车后,如果有空座,可以坐下 上车后,如果没有空座,则站着等空座位如果没钱,不能上车"""# 假设用 money = 1 表示有钱, money = 0表示没有钱; seat = 1 表示有空座,seat = 0 表示没有空座money = 1seat = 0if money == 1: print('上车') if seat == 1: print('有空座,可以坐下') else: print('没有空座,站着')else: print('没钱,不能上车')

七、应用:猜拳游戏

需求分析:

参与游戏的角色

玩家

手动出拳 电脑

随机出拳

判断输赢

玩家获胜 玩家电脑石头剪刀剪刀布布石头

平局

玩家出拳 和 电脑出拳相同 电脑获胜

随机做法:

1、导出random模块 2、random.randint(开始,结束) 注意:范围包括左右界

"""提示:0-石头,1-剪刀,2-布1、出拳玩家输入出拳电脑随机出拳2、判断输赢玩家获胜平局电脑获胜"""# 导入random模块import random# 计算电脑出拳的随机数字computer = random.randint(0, 2)print(computer)player = int(input('请出拳:0-石头,1-剪刀,2-布:'))# 玩家胜利 p0:c1 或 p1:c2 或 p2:c0if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0): print('玩家获胜')# 平局:玩家 == 电脑elif player == computer: print('平局')else: print('电脑获胜')

if语句语法

if 条件: 条件成立执行的代码

if…else…

if 条件: 条件成立执行的代码else: 条件不成立执行的代码

多重判断

if 条件1: 条件1成立执行的代码elif 条件2: 条件2成立执行的代码else: 以上条件都不成立执行的代码

if嵌套

if 条件1: 条件1成立执行的代码 if 条件2: 条件2成立执行的代码 ....

三目运算符

条件成立的表达式 if 条件 else 条件不成立的表达式

a,b = 1, 2c = a if a < b else bprint(c) #结果为a的值1d = a if a > b else bprint(d) #结果为b的值2

运算符的分类

算数运算符赋值运算符复合赋值运算符比较运算符逻辑运算符 1、算数运算符 运算符描述实例+加1 + 1 输出结果为 2-减1-1 输出结果为 0*乘2 * 2 输出结果为 4/除10 / 2 输出结果为 5//整除10 // 4 输出结果为2%取余10 % 4 输出结果为 2**指数2 ** 4 输出结果为 16,即 2 * 2 * 2 * 2()小括号小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9

注意:

混合运算优先级顺序:()高于 ** 高于 * / // % 高于 + - 2、赋值运算符 运算符描述实例=赋值将=右侧的结果赋值给等号左侧的变量

单个变量赋值

num = 1print(num)

多个变量赋值

num1, float1, str1 = 10, 0.5, 'hello world'print(num1)print(float1)print(str1)

多变量赋相同值

a = b = 10print(a)print(b)

3、复合赋值运算符 运算符描述实例+=加法赋值运算符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

a = 100a += 1# 输出101 a = a + 1,最终a = 100 + 1print(a)b = 2b *= 3# 输出6 b = b * 3,最终b = 2 * 3print(b)c = 10c += 1 + 2# 输出13, 先算运算符右侧1 + 2 = 3, c += 3 , 推导出c = 10 + 3print(c)

4、比较运算符

比较运算符也叫关系运算符, 通常用来判断。

运算符描述实例==判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则条件结果为假(False)如a=3,b=3,则(a == b) 为 True!=不等于 。如果两个操作数的结果不相等,则条件为真(True),否则条件结果为假(False)如a=3,b=3,则(a == b) 为 True如a=1,b=3,则(a != b) 为 True>运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假如a=7,b=3,则(a > b) 为 True<运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假如a=7,b=3,则(a < b) 为 False>=运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于,则条件为真,否则为假如a=7,b=3,则(a < b) 为 False如a=3,b=3,则(a >= b) 为 True<=运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于,则条件为真,否则为假如a=3,b=3,则(a <= b) 为 True

a = 7b = 5print(a == b) # Falseprint(a != b) # Trueprint(a < b) # Falseprint(a > b) # Trueprint(a <= b) # Falseprint(a >= b) # True

5、逻辑运算符 运算符逻辑表达式描述实例andx and y布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。True and False, 返回 False。orx or y布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。False or True, 返回 True。notnot x布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not True 返回 False, not False 返回 True

a = 1b = 2c = 3print((a < b) and (b < c)) # Trueprint((a > b) and (b < c)) # Falseprint((a > b) or (b < c)) # Trueprint(not (a > b)) # True

5.1 拓展

数字之间的逻辑运算

a = 0b = 1c = 2# and运算符,只要有一个值为0,则结果为0,否则结果为最后一个非0数字print(a and b) # 0print(b and a) # 0print(a and c) # 0print(c and a) # 0print(b and c) # 2print(c and b) # 1# or运算符,只有所有值为0结果才为0,否则结果为第一个非0数字print(a or b) # 1print(a or c) # 2print(b or c) # 1

总结

算数运算的优先级

混合运算优先级顺序:()高于 ** 高于 * / // % 高于 + - 赋值运算符

= 复合赋值运算符

+=-=优先级 先算复合赋值运算符右侧的表达式再算复合赋值运算的算数运算最后算赋值运算 比较运算符

判断相等: ==大于等于: >=小于等于:<=不等于: != 逻辑运算符

与: and或:or非:not 循环(while与for) while

while 条件:条件满足时执行条件改变

break:终止当前所在的循环

continue:退出当前循环进行下一次循环

如果在循环中使用了continue, 一 定 要 在 使 用 c o n t i n u e 改 变 循 环 的 条 件 textcolor{red}{一定要在使用continue改变循环的条件} 一定要在使用continue改变循环的条件,否则会进入死循环

n = 1while n <= 5: if n == 3: print("有虫子,这个不吃了") n += 1 continue print(f'第{n}个苹果') n += 1

n = 1while n <= 5: if n == 3: print("有虫子,这个不吃了") n += 1 #在continue之前一定一定要有这个条件改变 continue print(f'第{n}个苹果') n += 1

while 循环嵌套

while 条件1:条件1成立执行的代码 其他部分while 条件2:条件2成立执行的代码其他部分

n = 1while n <= 3: j = 1 #内置循环结束后都要重新赋值 while j <= 3: print("错了") j += 1 #控制内层循环的条件 print("涮碗") print("一套惩罚结束-------------") n += 1 # 控制外层循环的条件

打印正方形星号

*************************

n = 0while n < 5: j = 0 while j < 5: #把5换成n,就是打印三角形 print("*",end='') j+=1 if n < 4: # 控制最后一行不打印回车 print() n+=1

九九乘法表

i = 1while i <= 9: j = 1 while j <= i: print(f'{j}*{i}={i*j}',end='t') j += 1 if i < 9: # 控制最后一行不打印回车 print() i += 1

while…else…

while 条件:条件成立执行打得的代码else:循环正常结束后执行的代码(如果break终止循环,则不执行该部分代码)

for循环

for 临时变量 in 范围

for…else…

for 条件:条件成立执行打得的代码else:循环正常结束后执行的代码(如果break终止循环,则不执行该部分代码)

while…else…与for…else中的break和continue用法(以后者为例)

str1 = 'asdf'for i in str1: if i == 'd': print('不打印g') break print(i)else: print('正常结束后执行的代码')

str1 = 'asdf'for i in str1: if i == 'd': print('不打印g') # break continue print(i)else: print('正常结束后执行的代码')

欢迎访问我的博客:Super 如有不足,欢迎指出,谢谢

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。