python基础以及练习题收集

Python基础知识讲解

关于PyCharm的基本设置

1. 修改字体大小.
2. 修改码表, 改成: utf-8
3. 修改代码提示, 即: 忽略大小写.
4. 修改背景颜色主题.
以上所有的设置都在: file -> settings -> ...   

注释

注释解释:
    概述:
        所谓的注释就是用来对程序进行解释和说明的文字, 是给程序员看的, 
        在程序的执行过程中, 并不会执行被注释的内容.
    分类:
        单行注释    # 开头即可.     
        多行注释     三个引号括起来(建议使用双引号)
hello.py
print("hello world")
print("hello python")

# 打印不换行
print("hello", end="")
print("world") # helloworld

# 默认打印换行
print("hello") # hello
print("world", end="@") # world@
input函数使用演示.py
name = input("请输入")  # 当代码执行到input就停止了,等待用户通过键盘输入
print(name)
# 如果用户通过键盘输入了tom,那么name变量的值就是tom
name = input("请再次输入")
print(name)

input输入的任何值都是字符串.py

"""
输入解释:
    概述:所谓的输入指的是用户录入的一些内容, 我们通过代码接收即可.
    格式:
        变量名 = input('提示的语句')
    细节:
        input()接收的所有的数据, 默认都是 str(字符串类型)
"""

# 提示用户录入姓名, 并接收打印.
name = input('请录入您的姓名: ')
print(f'您的姓名是: {
     name}')

# 提示用户录入年龄, 并接收打印.
age = input('请录入您的年龄: ')
print(f'您的年龄是: {
     age}')

# 打印上述的变量的类型.
print(type(name))   # str
print(type(age))    # str

age = input("请输入")
print(age + "1")
# 如果用户输入的是25,其实是字符串"25"

world.py

print("hello world")
变量.py
"""
变量介绍:
    概述: 所谓的变量指的是内存中的一小块区域, 该区域的值可以在一定范围内发生改变.
    格式:
        变量名 = 变量值
    例如:
        name = '张三'     因为张三属于字符串, 所以要用 引号括起来(单双引号均可)
        age = 23
快捷键:
    alt + 1   显示/隐藏 项目结构区
    alt + 4   显示/隐藏 控制台
"""
# 定义了一个变量名叫name,值为字符串张三
name = "张三"
# 定义了一个变量名叫age 值为数字26,记录年龄.
age = 26
age = 23

print(name)  # 如果print里面写的是变量名,那么输出的是变量的值
print('name')   # 因为用单引号括起来了, 表示字符串, 所以结果是: name
print(age)
print(26)

变量名.py

name = '妲己'
age = 25
name_age = "妲己25"
# 3name = "妲己"  错误的变量名
_name = "妲己"

name = 25
age = "妲己"

变量命名习惯.py

first_name = "张三" # 所有字母都小写
firstName = "张三" # 小驼峰,只有第二个单词首字母大写
FirstName = "张三" # 大驼峰, 每个单词首字母都大写
# 变量名不会所有字母都大写, FIRSTNAME
变量数据类型.py
"""
变量的数据类型:
    概述:
        根据存储的元素不同, 我们应该选择合适的容器(这个就是变量的数据类型)
    分类:   一共 8 种.
        整数: int
        浮点数: 即,小数, float
        布尔型: 真和假, bool
        字符串: 值要用引号(单双引号均可)括起来, str
        列表(list), 元组(tuple), 集(set), 字典(map): 它们是用来存储多个元素的容器.
    快捷键:
        ctrl + d    快速复制当前行
        ctrl + alter + ↑/↓  代码上下移动.
"""

# 演示 整型
a = 10
print(a)
# 演示 浮点型
b = 10.3
print(b)
# 演示 字符串型
c = '刘亦菲'
print(c)
# 演示 布尔型, 值只有: True 和 False, 也可以用0表示false, 非0表示True
d = True
print(d)
print('-----------------------')

# 通过 type(变量名或者值) 可以判断该变量的类型.
print(type(a))      # int
print(type(b))      # float
print(type(c))      # str
print(type(d))      # bool
print(type('123'))  # str
标识符和关键字演示.py
"""
标识符:
    概述:就是用来给类, 函数, 变量等起名字的规则和规范.
    命名规则:
        1. 最好做到见名知意.
        2. 由英文字母(包括大小写), 下划线, 数字组成.
        3. 数字不能开头.
        4. 不能和Python中的关键字重名.
    细节:
        大驼峰命名法: 也叫 双驼峰命名法.
            每个单词的首字母全部大写, 其它字母全部小写.
            例如: ZhangSanName, MaxValue
        小驼峰命名法, 也叫 单驼峰命名法
            从第二个单词开始, 每个单词的首字母全部大写, 其它全部小写,
            例如: maxValue, zhangSanAge
关键字:
    概述:就是被python语言赋予了特殊含义的单词.
    特点:
        1. 关键字全部是小写的.
        2. 不同的编辑器针对于关键字, 一般都会高亮显示.
    查看Python中的所有关键字:   注意: 这个知识点了解即可, 就是让你看看, 后续详解.
        import keyword
        print(keyword.kwlist)
    Python中的关键字如下:
        ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await',
        'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
        'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
        'lambda', 'nonlocal', 'not', 'or','pass', 'raise', 'return', 'try',
        'while', 'with', 'yield']
"""
# 查看关键字
import keyword
print(keyword.kwlist)

# 演示标识符,
name = '刘亦菲'
print(name)
不同类型变量计算.py
a = True
b = False
c = "你好"
d = 3.14
e = 5
print(a + b)
# print(c + d)  c和d不能相加
print(c * e)
print(d * b)

不同类型的变量.py

a = 10   # 数字10
b = "10"   # 这个地方不是整数10, 是一个字符串 有一个字符是1 还有一个字符是0
c = 1
d = "1"
print(a + c)
print(b + d)
不同类型转化.py
a = 10
b = "1"
# 要把b转化成int,与a相加
print(a + int(b))
# 要把a转化为str,与b相加
print(str(a) + b)
c = "你好"
# print(a + int(c)) # 如果c不能转化,那么代码会报错
d = "3.5"
print(a + float(d))

print(a + eval(b)) #11

# eval()函数类型转换,可以直接转成括号后面输入的数据类型
# eval()函数,只用于:int,float,boolean 类型
print(type(eval("2")))      #<class 'int'>
print(type(eval("2.23")))   #<class 'float'>
print(type(eval("True")))   #<class 'bool'>

# 下面转换会报错,找不到类型错误:NameError: name 'abc' is not defined
# print(type(eval("abc")))  # NameError: name 'abc' is not defined
# print(type(eval("你好")))

超市买苹果-增强.py

price = float(input("请输入苹果的单价"))
weight = float(input("请输入购买重量"))
money = price * weight
print(money)
输出.py
"""
输出:
    概述/目的:就是为了把结果打印到控制台上.
    分类:
        1. 普通方式输出.
        2. 占位符输出.
        3. 格式化输出.
        4. 指定行分隔符输出.
快捷键:ctrl + alt + 字母L    代码格式化.
"""
# 定义一些变量.
name = '刘亦菲'
age = 33
sid = 6
salary = 1000.31523

# 1、普通方式输出
print(name)
print(age)
print(sid)
print(salary)
print('---------------')

# 上述方式优化版, Python的输出语句, 可以同时输出多个变量.
print(name, age, sid, salary)

# 2、占位符输出, %s 表示 字符串, %d 表示整数, %f 表示小数.
print('我叫' + name)  # 通过 +号(算术运算符, 这里表示连接的意思)拼接.
print('我叫%s' % name)

# 细节: 如果有多个占位符, 则设置值的时候, 必须用小括号括起来.
print('我叫%s, 我的年龄是%d, 我的工资是%f, 我的学号是%d' % (name, age, salary, sid))

# 细节: 浮点型保留2位
print('我叫%s, 我的年龄是%d, 我的工资是%.2f, 我的学号是%d' % (name, age, salary, sid))

# 细节: 学号一共是5位, 不够用 0 补齐.
print('我叫%s, 我的年龄是%d, 我的工资是%.2f, 我的学号是%05d' % (name, age, salary, sid))

# 细节: 学号一共是5位, 不够用 空格 补齐.
print('我叫%s, 我的年龄是%d, 我的工资是%.2f, 我的学号是%5d' % (name, age, salary, sid))

# 3. 格式化(format)输出, 这个是Python3.X的特性.
print(f'我叫{
     name}, 我的年龄是{
     age}, 我的工资是{
     salary}, 我的学号是{
     sid}')

# 格式化输出并保留小数位.````
print(f'我叫{
     name}, 我的年龄是{
     age}, 我的工资是{
     round(salary, 2)}, 我的学号是{
     sid}')
print('-----------------------')

# 4、指定行分隔符输出
# print('hello') 这样代码的默认写法是:  print('hello', end='\n')
# print('hello', end='\t')
# print('world')

print('aa', end='@@')
print('bb', end='\n')  # aa@@bb

# 补充: 如何输出百分比.
count = 3
print('我叫%s, 我的成绩是班级的前%d%%' % (name, count))  # %%表示1个%,  占位符方式
print(f'我叫{
     name}, 我的成绩是班级的前{
     count}%')   # 格式化输出.

# 多条print输出到一行
print("hello")  # print在输出之后,会自动添加一个回车换行
print("world")
print("hello", end="") # print输出之后,不会自动添加回车换行
print("world")
格式化字符串.py
name = "张三"
age = 20
print("姓名" + name + ", 年龄" + str(age) + "岁")
# 这两个print输入的结果是一样的
print("姓名%s, 年龄%d岁" % (name, age))
print("姓名%s, 年龄%d岁, %%, %%s" % (name, age))

# 格式化字符串:format为格式化意思
print(f'姓名{
     name},年龄{
     age}岁。')

格式化字符串的演示.py

f = 3.14
str1 = "圆周率是"
print(str1 + str(f))
print("%s%.2f" % (str1, f))
a = 10
print("变量a的值是%05d" % a)

格式化字符串-个人名片.py

company = input("请输入公司名称")
name = input("请输入姓名")
tel = input("请输入电话号码")
mailbox = input("请输入邮箱地址")
print("*" * 20)
print("公司名称:%s" % company)
print("姓名:%s" % name)
print("电话:%s" % tel)
print("邮箱:%s" % mailbox)
print("*" * 20)

个人信息.py

name = "小明"
age = 18
sex = "男"
height = 1.75
isStudent = True
print(name, age, sex, height, isStudent)

课堂练习-变量和运算符.py

a = 12
b = 3
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)

课堂练习-变量值交换.py

# 交换a和b的值
a = 10
b = 20
c = a
a = b
b = c
print(a, b)  # 如果一个print输出两个变量的值,两个变量需要用逗号分隔

课堂练习-格式化输出.py

# 定义字符串变量 name = “小明”,输出: 我的名字叫小明,请多多关照!
name = "小明"
print("我的名字叫%s,请多多关照!" % name)
# 2. 定义整数变量 num = 1,输出: 我的学号是 000001
num = 1
print("我的学号是 %06d" % num)
# 3. 定义⼩数 price = 8.5、 weight = 5 ,输出:苹果单价 8.5 元/⽄,购买了 5.00 ⽄,需要支付 42.50 元
price = 8.5
weight = 5
print("苹果单价 %.1f元/⽄,购买了 %.2f ⽄,需要支付 %.2f 元" % (price, weight, price * weight))
# 4. 定义⼀个⼩数 scale = 10.01 ,输出: 数据是 10.01%
scale = 10.01
print("数据是 %.2f%%" % scale)
课堂练习-类型转化.py
"""
数据类型转换解释:
    就是把一些值转化成特定的数据类型, 例如: 把 字符串'123' -> 数字123
格式:
    int(值或者变量)
    float(值或者变量)
    str(值或者变量)
"""
# 提示用户录入他的年龄, 然后打印他10年后多少岁.
# 1. 提示用户录入他的年龄, 并接收.
ageStr = input('请录入您的年龄: ')

# 2. 将字符串数字转成int数字.
age = int(ageStr)  #  '33' -> 33

# 3. 打印结果.
print(f'您的年龄是{
     age}, 10年后, 您的年龄是{
     age + 10}')

# 4. 打印类型.
print(type(ageStr))   # input()接收的内容, 无论是什么值, 都是字符串类型.
print(type(age))      # int

print('-' * 10)
print(type(str(10)))
print(type(float('10.3')))
print(type(int(10.3)))
print(type(int('10.3')))

# 不同类型加操作,先要转成同一类型后才能进行加操作
a = "123"
b = 456
print(a + str(b))
print(int(a) + b)
课堂练习-四舍五入.py
# 如何把一个float类型的小数点去掉只保留整数
# f = 3.5
# a = int(f)  # 只要把一个浮点数用int()转化为一个整数,那么小数点就没了
# print(a)
a = 5
b = 2
# 2.5 + 0.5 = 3
print(int(a / b + 0.5))

a = 10
b = 3
# 3.333333 + 0.5 = 3.83333333333
print(int(a / b + 0.5))

a = 11
b = 2
# 5.5 + 0.5 = 6
print(int(a / b + 0.5))
# 任意两个数字除,结果加0.5,最后只保留整数位,就是对一个小数四舍五入取整的结果

买苹果.py

price = 8.5
weight = 7.5
money = price * weight
print(money)

买苹果10斤返5块.py

price = 8.5
weight = 10
money = price * weight
# 变量定义之后,再=号赋值,只是改变变量的值而已
money = money - 5  # 改变了money变量 的值
print(money)

数字型变量的计算.py

i = 10
f = 10.5
b = True

print(i + f)
print(i + b)
print(i - b)
算数运算符.py
"""
运算符解释:
    概述:
        所谓的运算符就是用来连接变量或者值的符号.
    分类:
        算术运算符:
            +, -, *, /, //, %, **
        赋值运算符:
            =, +=, -=, *=, /=, //=, %=, **=
        逻辑运算符:  后续详解, 目前先了解.
            and, or, not
"""

# 1. 演示算术运算符.
print(10 + 3)  # 13
print(10 - 3)  # 7
print(10 * 3)  # 30
print(10 / 3)  # 3.33333
print(10 // 3)  # 3
print(10 % 3)  # 1
print(10 ** 3)  # 1000
print("hello" * 3)
print('-' * 10)  # 输出10个-

# 2. 赋值运算符, 主要是做赋值用的.
#  =, 基本的赋值运算符, 把字符串值'刘亦菲'赋值给变量 name
name = '刘亦菲'

# 复合赋值运算符, 既有算术操作, 又有赋值操作, 例如: a += b, 意思, 把 a + b 的结果赋值给变量a
# 细节: 复合赋值运算符的左边必须是 变量.
a = 5
b = 3
a += b
# 10 += b  这样写会报错.
print(a)  # 8
显示关键字.py
# 显示python关键字
import keyword
print(keyword.kwlist)

用input输入两个数字,计算相加之和.py

# a = input("请输入第一个数字")
# b = input("请输入第二个数字")
# print(int(a) + int(b))
# 上面代码和下面代码执行结果是一样的
a = int(input("请输入第一个数字"))
b = int(input("请输入第二个数字"))
print(a + b)

运算符优先级.py

print((3 + 2) * 5)

注释.py

# 注释内容.单行注释

'''
多行注释
再来一次
'''

# 这是单行注释
转义字符.py
# 转义字符:\\(单纯输入单斜杠)、\n(换行)、\t(空格)、\"(双引号)、\'(单引号)、r"\n"(取消转义字符)。
print("我\t你")
print("我\n你")
print("我\\你")
print("我\"你")
print("我\'你")
print(r"我\n你")  # 我\n你

字符串计算.py

str1 = "你好"
str2 = "python"
str3 = str1 + str2
print(str3)
str3 = str1 * 5
print(str3)
# str3 = str1 - str2 字符串和字符串不能减

作业

1、执行python程序有哪两种方式:

  • 1.命令行运行python程序;

  • 2.pycharm运行python程序.

2、python的单行注释和多行注释分别如何书写

  • 单行注释:# 注释
  • 多行注释: ‘’’ 注释

3、python的算数运算符有哪些:

​ +加 -减 *乘 /除 //取整除 %去余数 **幂

4、如何查看python语言的关键字

import keyword
print(keyword.kwlist)

5、写出10个关键字

'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def'

6、变量的数据类型有哪些

  • 数字型:

    • 整数,布尔, 浮点数,复数
  • 非数字型:

    • 字符串,列表,元组,集合,字典

7、将字符串”123”转化为整数,将整数100转化为字符串

int(123)
str(100)

8、input演练,通过input输入两个整数

a = input()
b = input()
把a和b转化为整数后计算两个整数相加之和

a = input()
b = input()
print(int(a) + int(b))

9、用print输出”我是转义字符\n,你是转义字符\t”,注意屏幕需要直接输出\n和\t,不输出回车换行和制表符

print(r"我是转义字符\n,你是转义字符\t")

10、python中用print输出名片

print("==========我的名片==========")
print("\t姓名: itheima")
print("\tQQ:213123")
print("\t手机号:18523123")
print("\t公司地址:北京市昌平区")
print("===========================")
流程控制语句简介.py
"""
流程控制语句介绍:
    概述:
        所谓的流程控制语句就是用来控制代码的执行的, 有些代码是要按照顺序执行的,
        有些代码是要满足某些条件才能被执行的, 有些代码是满足条件后要重复执行的.
    分类:
        顺序结构:
            指的是代码会按照从上往下, 从左往右的顺序依次逐行执行. 这个也是 默认结构.
        分支结构:
            指的是代码在满足某些条件的情况下才会被执行, 例如: if语句.
        循环结构:
            指的是代码在满足某些条件的情况下会被重复执行. 例如: for循环, while循环
"""
# 顺序结构.
print('==== start ====')
print('hello 1' + 'aa' + 'bb')
print('hello 2')
print('hello 3')
print('==== end ====')
01-第一个if语句.py
"""
if语句之单分支:
    应用场景:
        适用于1种情况的判断.
    格式:
        if 判断条件:
            判断条件成立后执行的语句体
            ...
        这里的内容因为和if是对齐的, 所以和if就没有关系了.
    细节:
        判断条件无论简单还是复杂, 结果必须是 bool类型, 即: True或者False
    需求:
        提示用户键盘录入他/她的年龄并接收, 然后判断该用户的年龄是否不小于18岁,
        如果条件满足, 就提示 该用户可以去网吧上网了.
    快捷键:
        ctrl + /    注释/取消注释, 单行注释
"""

# # 1.提示用户键盘录入他/她的年龄并接收
# ageStr = input('请录入您的年龄: ')
# # 细节: 因为 input()接收的结果都是str, 我们要将其转成 int类型, 然后才能和数字判断.
# age = int(ageStr)
# # 2.然后判断该用户的年龄是否不小于18岁
# if age >= 18:
#     # 3.如果条件满足, 就提示 该用户可以去网吧上网了.
#     print('恭喜您, 成年了, 可以去网吧了!')
#     print('我成年了, 可以去网吧, 哈哈, 好开心!')
#     print('终于来到了网吧, 玩儿上了心爱的游戏, 被虐的太惨, 我哭了')
#     print('我要去学习, 如何写插件!')
# print('我和if是对齐的, 所以不受if控制, 即: 无论if的条件是否成立, 我都会执行!')

# 优化1: 我们可以对 int(), input()做合并, 即: 代码如下.
# 1.提示用户键盘录入他/她的年龄并接收
# 细节: 因为 input()接收的结果都是str, 我们要将其转成 int类型, 然后才能和数字判断.
# age = int(input('请录入您的年龄: '))
age = eval(input('请录入您的年龄: '))

# 2.然后判断该用户的年龄是否不小于18岁
if age >= 18:
    # 3.如果条件满足, 就提示 该用户可以去网吧上网了.
    print('恭喜您, 成年了, 可以去网吧了!')
    print('我成年了, 可以去网吧, 哈哈, 好开心!')
    print('终于来到了网吧, 玩儿上了心爱的游戏, 被虐的太惨, 我哭了')
    print('我要去学习, 如何写插件!')
print('我和if是对齐的, 所以不受if控制, 即: 无论if的条件是否成立, 我都会执行!')

# 优化2: 演示eval()函数的用法.
# eval()函数, 它里边接收的是是字符串类型的数据, 然后把该数据转成其对应的类型, 即: 相当于把引号去掉后的类型.
print('-' * 21)

print(type(eval('123')))        # int
print(type(eval('10.3')))       # float
print(type(eval('True')))       # bool
# print(type(eval('abc')))        # 报错

a = 10
if a < 3:
    print("你好")  # 这个print和if是一个代码块
print("hello") # 这里的print和上面的if没有关系
02-pass占位符.py
a = 10
if a > 5:
    pass
print("hello")
03-if单分支.py
age = int(input("请输入年龄"))
if age >= 18:
    print("可以嗨皮")
print("程序结束")

04-课堂练习-两个数相除.py

# num1通过input输入的数字
# num2通过input输入的数字
num1 = int(input("请输入num1的值"))
num2 = int(input("请输入num2的值"))
# 如果num2不等于0,计算num1 除以num2的结果
if num2 != 0:
    print(num1 / num2)

05-课程练习-计算器.py

age = int(input("请输入年龄"))
if age >= 18:
    print("可以进网吧嗨皮")
else:
    print("回家写作业")
06-if双分支.py
"""
if语句之双分支:
    适用场景: 适用两种情况的判断.
    格式:
        if 判断条件:
            语句体1
            ....
        else:
            语句体2
            ...
    执行流程:
        1. 先执行判断条件, 看其结果到底是True还是False.
        2. 如果是True, 则执行语句体1的内容.
        3. 如果是False, 则执行语句体2的内容.
    细节:
        1. 其实, else隐含有if语句的反条件.
        2. 如果你在测试数据的时候, 建议测试三种值, 正确值, 边界值, 非法值.
    需求:
        键盘录入某人的身高并接收, 如果身高不超过150cm, 则不用买票, 否则需要买票.
"""
# 1. 键盘录入某人的身高并接收
height = eval(input('请录入您的身高(cm): '))
# 2. 判断身高是否不超过150cm, 如果不超过, 不用买票.
if height <= 150:
    print('身高符合条件, 不用买票')
# 3. 否则需要买票
else:   # 其实这里的else的条件是   height > 150
    print('身高不符合条件, 需要买票')
三元运算(三目运算)
"""
三元运算符解释:
    概述: 所谓的三元运算符也叫三目运算符, 可以用来简化if.else的操作.
    格式:
        值1 if 判断条件 else 值2
    执行流程:
        1. 先执行判断条件, 看其结果是True还是False.
        2. 如果是True, 就返回 值1, 否则就返回值2.
    建议:
        以后做题尽可能多的去想解决方案, 并尽量都转化成代码实现.
        长期以往, 可以培养你的思维以及你的逻辑能力.
"""
# 需求: 已知有a,b两个整数, 求它们的最大值, 并打印结果到控制台上.
# 1. 定义两个变量, 分别记录两个整数.
a, b, max = 10, 3, 0
# 2. 获取最大值.
# 方式1: if.else 版
# if a > b:
#     max = a
# else:
#     max = b

# 方式2: 三元运算符实现.
max = a if a > b else b
# 3. 打印结果
print(f'最大值为 {
     max}')
print('-' * 13)
# 需求2: 获取任意两个整数的差值.
c, d, result = 10, 30, 0
# 获取差值
# 方式1: if. else版.
# if c > d:
#     result = c - d
# else:
#     result = d - c

# 方式2: 三元运算符
result = (c - d) if c > d else (d - c)
# 打印结果
print(f'差值为: {
     result}')
比较运算符
"""
比较运算符详解:
    作用:就使用来做比较的, 无论简单还是复杂, 结果必然是 bool类型.
    分类:
        >, <, >=, <=, ==, !=
    细节:
        =是赋值, ==是比较, 所以不要写错了.
逻辑运算符:
    作用: 用来描述逻辑关系的, 例如: 并且, 或者, 非(取反)
    分类:
        and, or, not
细节:
    按住 鼠标滚轮不要松, 然后往下拉, 可以纵向选择.
"""
# 1. 演示比较运算符
print(10 > 3)  # True
print(10 < 3)  # False
print(10 >= 10)  # True
print(10 > 10)  # False
print(10 <= 10)  # True
print(10 < 10)  # False
print(10 == 20)  # False
print(10 != 20)  # True
print('-' * 13)

# 2.演示逻辑运算符
# and, 表示逻辑与, 即, 并且的意思, 要求所有的条件都要满足, 总结: 有False则整体为False
# print(5 > 3 and 3 > 2)  # True and True
print(True and True)  # True
print(True and False)  # False
print(False and True)  # False
print(False and False)  # False
print('-' * 13)

# or, 表示逻辑或, 即, 或者的意思, 只要有一个条件成立即可, 总结: 有True则整体为True
print(True or True)  # True
print(True or False)  # True
print(False or True)  # True
print(False or False)  # False
print('-' * 13)

# not, 表示逻辑非, 即: 取反的意思, 以前是True取反就是False, 以前是False, 取反就是True
print(not True)
print(not False)

# 任意的一个bool值, 被偶数次取反, 该值不变.
print(not not True)
print('-' * 13)

# 扩展: 关于逻辑运算符操作数字.
# 实际开发中, 有些地方你会看到这样的代码, 技巧就是: 你把0当做False, 非0当做True就行.
# 如果有0(False)则整体为0(False), 否则取 最后1个整数.
print(0 and 3)  # 0
print(5 and 0)  # 0
print(2 and 0 and 10)  # 0
print(2 and 3 and 10)  # 10
print('-' * 13)

# 如果有非0(True)则整体为非0(True), 取 第1个整数, 如果都为0(False), 则整体为0(False)
print(0 or 0)  # 0
print(0 or 3)  # 3
print(5 or 0)  # 5
print(2 or 0 or 10)  # 2
print(2 or 3 or 10)  # 2

三元运算符之比较大小,获取最大值

# 找出最大数
# 定义所需要的数据
a, b, max = 10, 2, 0
# if方式
if a > b:
    max = a
else:
    max = b
print(max)

# 三元运算
max = a if a>b else b
print(max)

07-课堂练习-判断奇偶数.py

num1 = int(input("请输入num1的值"))
# 如何判断一个整数是否为偶数,可以和2取余数,如果余数为0就是偶数,否则为奇数
if num1 % 2 == 0:
    print("偶数")
else:
    print("奇数")

08-课堂练习-判断正负数.py

num1 = int(input("请输入num1的值"))
# 判断num1是否为正数 只要num1大于等于0就是正数
if num1 >= 0:
    print("正数")
else:
    print("负数")
09-and.py
name = "小明"
age = 6
if name == "小明" and age > 20:
    print("通过")
else:
    print("不通过")
10-or.py
name = "小"
age = 30
if name == "小明" or age > 20:
    print("通过")
else:
    print("不通过")
11-not.py
name = "小"
if not name == "小明":
    print("通过")
else:
    print("不通过")

12-课堂练习计算数字是否是在0到120之间.py

a = int(input("请输入一个数字"))
# 判断一个数字是否在0到120之间 ,这个数字要大于等于0 并且小于等于120
if a >= 0 and a <= 120:
    print("在0到120之间")
else:
    print("不在0到120之间")

13-判断登录.py

name = input("请输入账号")
passwd = input("请输入密码")
if name == "itcast" and passwd == "123456":
    print("通过登录")
else:
    print("登录失败")
14-if多分支.py
"""
if语句之多分支解释:
    适用场景:
        适用于多种情况的判断.
    格式:
        if 判断条件1:
            语句体1
        elif 判断条件2:
            语句体2
        elif 判断条件3:
            语句体3
        ......
        else:
            语句体n
    执行流程:
        1. 先执行判断条件1, 看其是否成立.
        2. 如果成立, 则执行对应的语句体1, 然后整个if语句就结束了.
        3. 如果不成立, 则执行判断条件2, 看其是否是否成立.
        4. 如果成立, 则执行对应的语句体2, 然后整个if语句就结束了.
        5. 如果不成立, 则执行判断条件3, 依次类推.
        6. 如果所有的判断条件都不成立, 则执行 else对应的 语句体n, 然后整个if语句结束.
    需求: 根据考试成绩发放奖励.
        90 ~ 100        奖励: 山地自行车一辆
        80 ~ 89         奖励: 游乐场1日游
        70 ~ 79         奖励: 放假1天
        60 ~ 69         奖励: 练习题一套
        60分以下        奖励: 男女组合拳 + 扫帚棒法
"""
# 版本1: 入门版.
# # 1. 提示录入小明的考试成绩, 并接收.
# score = eval(input('请录入小明同学的考试成绩: '))
# # 2. 根据考试成绩, 发放奖励.
# if score >= 90 and score <= 100:
#     print('奖励: 山地自行车一辆')
# elif score >= 80 and score < 90:
#     print('奖励: 游乐场1日游')
# elif score >= 70 and score < 80:
#     print('奖励: 放假1天')
# elif score >= 60 and score < 70:
#     print('奖励: 练习题一套')
# else:
#     print('奖励: 男女组合拳 + 扫帚棒法')

# 版本2: 进阶版, 考虑 非法值
# # 1. 提示录入小明的考试成绩, 并接收.
# score = eval(input('请录入小明同学的考试成绩: '))
# # 2. 根据考试成绩, 发放奖励.
# if score < 0 or score > 100:
#     print('无效成绩')
# elif score >= 90 and score <= 100:
#     print('奖励: 山地自行车一辆')
# elif score >= 80 and score < 90:
#     print('奖励: 游乐场1日游')
# elif score >= 70 and score < 80:
#     print('奖励: 放假1天')
# elif score >= 60 and score < 70:
#     print('奖励: 练习题一套')
# else:
#     print('奖励: 男女组合拳 + 扫帚棒法')


# 版本3: 最终版, 使用上 else的隐含条件.
# 1. 提示录入小明的考试成绩, 并接收.
score = eval(input('请录入小明同学的考试成绩: '))
# 2. 根据考试成绩, 发放奖励.
if score < 0 or score > 100:
    print('无效成绩')
elif score >= 90:  # 这里的else的隐含条件是:  score >= 0 and score <= 100
    print('奖励: 山地自行车一辆')
elif score >= 80:  # 这里的else的隐含条件是:  score >= 0 and score < 90
    print('奖励: 游乐场1日游')
elif score >= 70:  # 这里的else的隐含条件是:  score >= 0 and score < 80
    print('奖励: 放假1天')
elif score >= 60:  # 这里的else的隐含条件是:  score >= 0 and score < 70
    print('奖励: 练习题一套')
else:  # 这里的else的隐含条件是:  score >= 0 and score < 60
    print('奖励: 男女组合拳 + 扫帚棒法')

# if多分支案例二
hday = input("请输入今天是什么日子")
if hday == "情人节":
    print("买玫瑰")
elif hday == "平安夜":
    print("吃大餐")
elif hday == "生日":
    print("吃蛋糕")
else:
    print("去上班")
15-Debug断点调试.py
"""
Debug断点调试:
    目的/作用:
        1. 可以帮助我们调试程序, 方便我们查询程序的每一步执行结果.
        2. 可以帮助我们排错.
    步骤:
        1. 加断点.
            哪里不会点哪里.
            细节: 断点一般加在第一行有效代码处, 这样可以查看整个程序的执行流程.
        2. 如何启动Debug断点调试.
            在代码编辑区, 右键, Debug ....
        3. 启动Debug断点调试以后, 看哪里?
            下左: Frames, 即 表示当前代码执行到哪里了(会具体到行数)
            下中: Variables, 即 表示变量值的变化的.
            下右: Console, 即 控制台, 用来展示程序的打印结果的.
        4. 如何进行下一步.
            F7: 逐过程调试, 即 一步一步的调试, 遇到函数后, 会进入到函数的内部(底层源码)
            F8: 逐行调试, 即 一行一行的调试, 遇到函数后, 不会进入到函数内部, 而是当做一行代码处理.
            F9: 逐断点调试, 即 从当前断点调到下一个断点.
        5. 如何结束Debug断点调试.
            方式1: 一步一步的调试完, 自动结束.
            方式2: 点击 红色的正方形按钮, 结束调试.
            方式3: 如果当前断点已经是最后一个断点了, 再此按下F9, 即: 结束调试.
        6. 如何删除断点.
            方式1: 重新点击断点.
            方式2: 选择 双点图表(break points), 移除所有断点即可.
"""

16-判断年龄范围.py

age = int(input("请输入年龄"))
if age < 10 and age > 0:
    print("小孩")
elif age >= 10 and age < 20:
    print("小朋友")
elif age >= 20 and age < 30:
    print("年轻人")
elif age >= 30 and age < 50:
    print("中年人")
elif age >= 50:
    print("老年人")
else:
    print("年龄不对")

17-if.py

a = int(input("请输入一个整数"))
if a > 0:
    print("正数")
elif a == 0:
    print("不是正数也不是负数")
else:
    print("负数")
18-if嵌套.py
"""
if语句之嵌套解释:
    概述:所谓的if语句嵌套指的是if结构的语句体还是一个if语句, 这就叫if语句的嵌套.
    格式:
        if 判断条件1:
            语句体1

             if 判断条件a:
                语句体a

            else:
                语句体b
        else:
            语句体2

需求:
    情节描述:上公交车,并且可以有座位坐下
    要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果车上有空座位,就可以坐下。
"""
# 1. 提示用户录入他/她的公交卡余额, 并接收.
money = eval(input('请录入您的公交卡余额: '))

# 2. 判断余额是否超过2元, 超过就提示可以上车, 否则提示 跟车跑.
if money >= 2:
    print('滴, 刷卡成功, 老年卡, 请上车!')
    # 3. 判断是否有座位.
    # 3.1 录入余座的数量.
    seat = int(input('请录入余座的数量: '))
    # 3.2 根据余座的数量, 并提示.
    if seat >= 1:
        print('有座位, 可以坐下!')
    else:
        print('哎呀, 没有座位了, 只能站着了!')
else:
    print('滴, 刷卡失败, 余额不足, 请下车, 可以考虑跟车跑!')

# 演示案例二:0-100之间任意一个数是否能被3整除
# 随意输入一个数,定义变量接收
a = int(input("请输入一个数字"))
# 判断0到100之内,任意一个数字是否能被3整数
# 首先需要判断这个数字是否在0到100之内
# 如果一个数字大于0,并且小于100,就是在0到100之内
if a > 0 and a < 100:
    print("数字在范围内")
# 如果条件满足,再判断是否能被3整除
# 一个数字和3取余数,如果余数为0,代表可以被3整除
    if a % 3 == 0:
        print("能被3整除")
    else:
        print("不能被3整数")
else:
    print("不在0到100之间")

19-课堂练习-if嵌套.py

name = input("请输入姓名")
if name == "tom":
    age = int(input("请输入年龄"))
    if age >= 30:
        print("大叔")
    else:
        print("小弟")
else:
    print("姓名错误")

20-课堂练习-计算器优化.py

num1 = int(input("请输入num1的值"))
num2 = int(input("请输入num2的值"))
a = input("请输入a的值")
if a == "+":
    print(num1 + num2)
elif a == "-":
    print(num1 - num2)
elif a == "*":
    print(num1 * num2)
elif a == "/":
    if num2 != 0:
        print(num1 / num2)
    else:
        print("除数不能为0")
else:
    print("a的值必须为+-*/")

21-赋值运算符.py

a = 10  # =赋值运算符
a += 1 #a = a + 1
print(a)
b = 5
b -= 2 #b = b - 2
print(b)
c = 5
c *= 2 #c = c * 2
print(c)

22-运算符优先级.py

a = 4 + 5 * 2 > 3
print(a)
a = 4 + 5 * (2 > 3)
print(a)
23-随机数的生成.py
import random
# 要定义一个变量,来存放随机数
a = random.randint(1, 5) # 会生成从1到5之间的一个随机的整数(包含1和5)
print(a)
a = random.randint(10, 20) # 生成从10到20之间的随机数,包含10和20
print(a)

24-随机数-生成坦克飞机大炮.py

# 1代表坦克
# 2代表飞机
# 3代表大炮
import random
a = random.randint(1, 3)
if a == 1:
    print("坦克")
elif a == 2:
    print("飞机")
else:
    print("大炮")

25-猜拳游戏.py

# 1:石头
# 2:剪刀
# 3:布
# 石头赢剪刀  1赢2
# 剪刀赢布    2赢3
# 布赢石头    3赢1
# 人通过键盘输入数字1或者2或者3
# 电脑随机产生数字1或者2或者3
# 比较胜负
import random
# pc代表电脑要出的拳,可能是1,可能2或者3
pc = random.randint(1, 3)
# player代表人要出的拳,可能是1或者2或者3
player = int(input("请输入1或者2或者3"))
if (pc == 1 and player == 2) or (pc == 2 and player == 3) or (pc == 3 and player == 1):
    print("电脑出了%d, 我出了%d电脑赢了" % (pc, player))
elif (pc == player):
    print("电脑出了%d, 我出了%d, 平局" % (pc, player))
else:
    print("电脑出了%d, 我出了%d,我赢了" % (pc, player))
26-猜拳游戏-改进版.py
# 1:石头
# 2:剪刀
# 3:布
# 石头赢剪刀
# 剪刀赢布
# 布赢石头
# 人通过键盘输入石头,剪刀,和布
# 电脑随机产生数字1或者2或者3
# 如果电脑产生数字1,那么就要转化为石头
# 如果电脑产生数字2,那么就要转化为剪刀
# 如果电脑产生数字3,那么就要转化为布
# 比较胜负

import random
# pc代表电脑要出的拳,可能是1,可能2或者3
pc = random.randint(1, 3)
# 需要把数字1,2,3转化为对应的字符串
# 变量a存放数字转化为字符串的结果
a = None
if pc == 1:
    a = "石头"
elif pc == 2:
    a = "剪刀"
else:
    a = "布"

# player代表人要出的拳,可能是石头或者剪刀或者布
player = input("请输入石头或者剪刀或者布")

if (a == "石头" and player == "剪刀") or (a == "剪刀" and player == "布") or (a == "布" and player == "石头"):
    print("电脑出了%s, 我出了%s, 电脑赢了" % (a, player))
elif (a == player):
    print("电脑出了%s, 我出了%s, 平局" % (a, player))
else:
    print("电脑出了%s, 我出了%s, 我赢了" % (a, player))

作业

1、比较运算符有哪些

>大于
>=大于等于
<小于
<=小于等于
==等于
!=不等于

2、if 判断数字是否大于150,要求:通过input函数输入身高,如果身高没有超过150cm,输出“可以进入”,否则输出”请买票”。

height = int(input("请输入身高"))
if height < 150:
    print("可以进入")
else:
    print("请买票")

3、if 判断1和0:通过input函数输入 是否有票,1代表 有票,0代表 没有票,根据用户输入 进行判断 如果是 1 输出 欢迎光临 ,否则 输出 请买票, 输出非0或者1,输出 错误。

ticket = int(input("请输入1:有票,0:无票"))
if ticket == 1:
     print("欢迎光临")
elif ticket == 0:
    print("请买票")
else:
    print("错误")

4、逻辑运算符有哪些

andornot

5、运算符 =, ==, + , >,* , += , %,分别根据优先级从高到低排序

*,%
+
>
==
=
+=

6、随机数与if演练:生成一个从0到999的随机数,如果随机数的值0到9之间,print输出”毫米”,如果随机数的值10到99之间,print输出”厘米”,如果随机数的值100到999之间,print输出”分米”。

import random
num1 = random.randint(0, 999)
print(num1)
if num1 >= 0 and num1 < 10:
    print("毫米")
elif num1 >= 10 and num1 < 100:
    print("厘米")
elif num1 >= 100 and num1 < 1000:
    print("分米")
01-第一个while.py
'''
while循环简介
    概述:它是循环结构的一种, 当满足某些条件的情况下, 循环体会一直执行.
    格式:
        初始化条件1
        while 判断条件2:
            循环体3
            控制条件4
    名词解释:
        1. 初始化条件, 例如: i = 0
            这个表示循环执行之前, 变量的值, 即: 从哪里开始计数.
        2. 判断条件, 例如: i < 5
            这个条件的结果, 决定了循环是否继续执行, True:循环就执行, False:循环结束.
        3. 循环体, 例如: print('hello world')
            表示当判断条件满足的情况下, 需要重复做的事儿.
        4. 控制条件, 例如: i += 1
            用来控制初始化条件的变化的, 否则容易造成 死循环.
    执行流程:
        第1次循环: 1, 2, 3, 4       假设判断条件成立.
        重复循环:  2, 3, 4          假设判断条件成立.
        最后1次循环: 2              判断条件不成立(False), 循环结束.
        
    需求:打印5次Hello World

    快捷键: shift + enter  快速向下插入一行.
'''
# 需求: 打印5次Hello World
# 方式1: 最Low版.
print('hello world 1')
print('hello world 2')
print('hello world 3')
print('hello world 4')
print('hello world 5')
print('-' * 13)

# 方式2: while循环实现
i = 1  # 初始化条件1
while i <= 5:  # 判断条件2
    print(f'hello world {
     i}')  # 循环体3
    i += 1  # 控制条件4
02-死循环.py
a = 0
while a < 3:
    print("hello world")

03-输出从0开始的6个数字.py

a = 0
while a < 6:
    print(a)
    a += 1
 
# 循环输出从5到0
a = 5
while a >= 0:
    print(a)
    a -= 1
04-输出从0到100之间所有整数累加和.py
'''
while案例: 求1~100之间所有的整数和.
如果你做题没有思路, 则你要学会任务拆解, 例如: 该题的思路可以分为两部分.
    1. 打印1~100之间所有的整数.
    2. 对上述所有的整数进行求和.
'''

# 打印1~100之间所有的整数.
# i = 1
# while i <= 100:
#     print(i)
#     i += 1  # 别忘了写控制条件, 否则容易造成死循环.

# 求1~100之间所有的整数和.
# 1. 定义求和变量 sum, 记录求和结果.
sum = 0
# 2. 获取1~100之间所有的整数.
i = 1
while i <= 100:
    # 3. 求和.
    # print(i)
    sum += i
    i += 1  # 别忘了写控制条件, 否则容易造成死循环.
# 4. 打印结果.
print(f'1~100之间所有的整数和结果为: {
     sum}')

'''
上述循环的执行流程如下:
    第1次循环: sum = 0, i = 1, 判断条件是 1 <= 100, 条件成立, 执行循环体: sum = sum + i = 1, 执行控制条件: i = i + 1 = 2
    第2次循环: sum = 1, i = 2, 判断条件是 2 <= 100, 条件成立, 执行循环体: sum = sum + i = 3, 执行控制条件: i = i + 1 = 3
    第3次循环: sum = 3, i = 3, 判断条件是 3 <= 100, 条件成立, 执行循环体: sum = sum + i = 6, 执行控制条件: i = i + 1 = 4
    第4次循环: sum = 6, i = 4, 判断条件是 4 <= 100, 条件成立, 执行循环体: sum = sum + i = 10, 执行控制条件: i = i + 1 = 5
    第5次循环: sum = 10, i = 5, 判断条件是 5 <= 100, 条件成立, 执行循环体: sum = sum + i = 15, 执行控制条件: i = i + 1 = 6
    ......
'''

# 循环计算从300到415之间整数累加和
sum = 0
a = 300
while a <= 415:
    sum += a
    a += 1
print(sum)
05-while循环-求偶数和.py
'''
while案例: 求1~100之间所有的偶数和.

如果你做题没有思路, 则你要学会任务拆解, 例如: 该题的思路可以分为两部分.
    1. 打印1~100之间所有的偶数.
    2. 对上述所有的偶数进行求和.
'''
# 任务1: 打印1~100之间所有的偶数.
# 方式1: 先获取1~100之间所有的整数, 逐个判断是否是偶数, 是就打印, 否则什么都不做.
# i = 1
# while i <= 100:
#     # 判断i(数字), 是否是偶数, 如果是, 再打印.
#     if i % 2 == 0:
#         # 走这里, 说明i是偶数, 我们就打印.
#         print(i)
#     i += 1

# 方式2: 直接获取所有的偶数.
# i = 0
# while i <= 100:
#     print(i)
#     i += 2


# 最终代码, 求偶数和.
# 1. 定义求和变量sum.
sum = 0
# 2. 获取1~100之间所有的偶数.
i = 0
while i <= 100:
    # 3. 求和.
    sum += i
    i += 2  # 控制条件

# 4. 打印结果.
print(f'1-100之间偶数和为: {
     sum}')

'''
上述循环的执行流程如下:
    第1次循环: sum = 0, i = 0, 判断条件是 0 <= 100, 条件成立, 执行循环体: sum = sum + i = 0, 执行控制条件: i = i + 2 = 2
    第2次循环: sum = 0, i = 2, 判断条件是 2 <= 100, 条件成立, 执行循环体: sum = sum + i = 2, 执行控制条件: i = i + 2 = 4
    第3次循环: sum = 2, i = 4, 判断条件是 4 <= 100, 条件成立, 执行循环体: sum = sum + i = 6, 执行控制条件: i = i + 2 = 6
    ......
'''
06-break.py
# 循环跳转语句:break和continue
# break作用:用于终止循环的,即:循环结束,不再执行。
# continue作用:用于结束本次循环,进行下一次循环。
a = 0
while a < 10:
    print(a)
    if a == 3:
        break  # break执行,循环不在执行了
    a += 1
# break之后,代码到这里了

07-课堂练习-break.py

a = 0
while a < 100000000:
    str1 = input("请输入一个字符串")
    if str1 == "exit":
        break
    print(str1)
    a += 1
08-人造死循环通过break退出.py
# 如果while后面的条件为True,这个while就是一个人为的循环
# 循环内部一定要有if结合break来让循环退出的机制
while True:
    str1 = input("请输入一个字符串")
    if str1 == "exit":
        break
    print(str1)
09-continue.py
# 循环跳转语句:break和continue
# break作用:用于终止循环的,即:循环结束,不再执行。
# continue作用:用于结束本次循环,进行下一次循环。如果执行到continue了,那么continue后面的代码也不会执行,直接开始新一轮循环。
a = 0
while a < 5:
    if a == 3:
        continue  # a等于3的时候,就再也没机会执行a += 1这个代码了
    print(a)
    a += 1
循环跳转语句之break和continue.py
'''
循环跳转语句break和continue:
    break作用: 用于终止循环的, 即: 循环不再继续执行.      类似于: 辞职, 不干了.
    continue作用: 用于结束本次循环, 进行下一次循环的.     类似于: 请假, 休息一天, 明天继续.
'''
# 需求: 观察如下代码, 在执行的地方分别填充对应的代码, 使其分别能够打印2, 7, 13 HelloWorld
for i in range(1, 11):
    if i % 3 == 0:  # i的值: 3, 6, 9
        # 在这里填充代码, 分别实现打印2, 7, 13 HelloWorld
        break  # 它用于终止循环, 只要看到break, 循环就结束了,  2次
        # continue  # 它用于结束本次循环, 进行下一次循环, 即: 只要看到continue, 无论后边是否还有代码, 本次循环都将结束, 7次
        # print(f'hello world {i}')
    print(f'hello world {i}')
# 10 // 3 = 3(商)       10 % 3 = 1(余数)

print(10 // 3)  # 商: 3
print(10 % 3)  # 余数: 1

'''
    数学中的几个术语:
        10(被除数) / 3(除数) = 3(商)
        10(被除数) % 3(除数) = 1(余数)
'''
10-关于break和continue的for循环面试题
# 需求:观察以下代码,在执行的地方分别填充对应的代码,使其分别打印2、7、13次HelloWorld
for i in range(1, 11):
    if i % 3 == 0:
        # break   # 打印2次HelloWorld
        # continue  # 打印7次HelloWorld
        print(f"HelloWorld{i}")  # 打印13次HelloWorld
    print(f"HelloWorld{i}")

11-课堂练习-输出指定行数的星号.py

# a还是一个循环计数器
# b决定了循环的最大次数
a = 0
b = int(input("请输入b的值"))

while a < b:
    print("*")
    a += 1
    if a >= 20: # 不管b的值多大,一旦a到了20,循环就退出
        break

12-课堂练习-输出指定行数的星号再来一次.py

# 如果输出3行星号
# a = 0
# b = 3
# while a < b:
#     print("*")
#     a += 1
# 如果b的值不是代码写死的,是通过input输入的
a = 0
b = int(input("请输入b的值"))  # 假设用户输入了数字10
while a < b:
    print("*")
    a += 1   # 在循环内部,a的值一直在变化,但b的值从来不变
    if a >= 20:
        break
13-循环嵌套.py
# 一个print只输出一个星号, 如何输出连续的三个星号
num1 = 0
while num1 < 2:  # 外循环一共循环2次,每次外循环的时候,内循环循环3次
    a = 0
    while a < 3:
        print("*", end=""
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值