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

在这里插入图片描述

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

一、输出

作用:输出内容

print('hello Python')

age = 18
print(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.5
student_id = 1

# 我的名字是TOM
print('我的名字是%s' % name)

# 我的学号是0001
print('我的学号是%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}')
# <class 'str'>
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 = 20
if 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 = 1
if money == 1:
    print('土豪,不差钱,顺利上车')
else:
    print('没钱,不能上车,追着公交车跑')

6.2.2 判断是否能坐下

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

七. 应用:猜拳游戏

需求分析:

  • 参与游戏的角色

    • 玩家
      • 手动出拳
    • 电脑
      • 随机出拳
  • 判断输赢

    • 玩家获胜
玩家电脑
石头剪刀
剪刀
石头
  • 平局
    • 玩家出拳 和 电脑出拳相同
  • 电脑获胜

随机做法:

1. 导出random模块
        	2. random.randint(开始,结束) <font color=red> 注意:范围包括左右界</font>
"""
提示: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:c0
if (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, 2
c = a if a < b else b
print(c) #结果为a的值1
d = a if a > b else b
print(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 = 1
print(num)
  • 多个变量赋值
num1, float1, str1 = 10, 0.5, 'hello world'
print(num1)
print(float1)
print(str1)
  • 多变量赋相同值
a = b = 10
print(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 = 100
a += 1
# 输出101  a = a + 1,最终a = 100 + 1
print(a)

b = 2
b *= 3
# 输出6  b = b * 3,最终b = 2 * 3
print(b)

c = 10
c += 1 + 2
# 输出13, 先算运算符右侧1 + 2 = 3, c += 3 , 推导出c = 10 + 3
print(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 = 7
b = 5
print(a == b)  # False
print(a != b)  # True
print(a < b)   # False
print(a > b)   # True
print(a <= b)  # False
print(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 = 1
b = 2
c = 3
print((a < b) and (b < c))  # True
print((a > b) and (b < c))  # False
print((a > b) or (b < c))   # True
print(not (a > b))          # True

5.1 拓展

数字之间的逻辑运算

a = 0
b = 1
c = 2

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

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

总结

  • 算数运算的优先级
    • 混合运算优先级顺序:()高于 ** 高于 * / // % 高于 + -
  • 赋值运算符
    • =
  • 复合赋值运算符
    • +=
    • -=
    • 优先级
      1. 先算复合赋值运算符右侧的表达式
      2. 再算复合赋值运算的算数运算
      3. 最后算赋值运算
  • 比较运算符
    • 判断相等: ==
    • 大于等于: >=
    • 小于等于:<=
    • 不等于: !=
  • 逻辑运算符
    • 与: and
    • 或:or
    • 非:not

循环(while与for)

while

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

break:终止当前所在的循环

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

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

n = 1
while n <= 5:
    if n == 3:
        print("有虫子,这个不吃了")
        n += 1
        continue

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

    print(f'第{n}个苹果')
    n += 1

while 循环嵌套
while 条件1:
	条件1成立执行的代码
    其他部分
	while 条件2:
		条件2成立执行的代码
		其他部分
n = 1
while n <= 3:
    j = 1    #内置循环结束后都要重新赋值
    while j <= 3:
        print("错了")
        j += 1  #控制内层循环的条件
    print("涮碗")
    print("一套惩罚结束-------------")
    n += 1  # 控制外层循环的条件
打印正方形星号
*****
*****
*****
*****
*****
n = 0
while n < 5:
    j = 0
    while j < 5:     #把5换成n,就是打印三角形
        print("*",end='')

        j+=1
    if n < 4:    # 控制最后一行不打印回车
        print()
    n+=1

九九乘法表
i = 1
while 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('正常结束后执行的代码')

image-20220120094532356

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

image-20220120094336849

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值