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、逻辑运算符有哪些
and与
or或
not非
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=""