if语句格式
if 条件:
条件成立时,要做的事
"""
需求
1、定义一个整型变量记录年龄
2、判断是否18岁
3、如果18岁允许进入网吧嗨皮
"""
age = int(input('请输入你的年龄:'))
if age >= 18:
print('允许进网吧嗨皮')
print('哈哈')
print('不可以进去') # 不在if的作用域内
'''-----------------------------------------------'''
age = int(input('请输入你的年龄:'))
if age >= 18:
print('允许进网吧嗨皮')
print('哈哈')
else:
print('不可以进去') # 否则
# is_employee = bool(input('请输入是否是雇员:')) 错了,字符串不好转换成布尔
# 一般情况下不使用输入方式输入bool类型数据,用int
else格式
if嵌套
•if 条件 1:
• 条件 1 满足执行的代码
• ……
•
• if 条件 1 基础上的条件 2:
• 条件 2 满足时,执行的代码
• ……
•
• # 条件 2 不满足的处理
• else:
• 条件 2 不满足时,执行的代码
•
•# 条件 1 不满足的处理
•else:
• 条件1 不满足时,执行的代码
• ……
"""
1、练习1:定义一个整型变量age,编写代码判断年龄是否正确
要求人的年龄在0-120之间
2、练习2:定义两个整数变量python_score、c_score,编写代码判断成绩
要求只要有一门成绩>60分就算及格
3、练习3:定义一个布尔类型变量is_employee,编写代码判断是否是本公司员工
如果不是提示不允许入内
"""
# """------------------ 练习1 ------------------"""
# age = int(input("请输入年龄:"))
# if (age > 0) and (age <= 120):
# print('年纪正确')
# else:
# print('不是正确的年龄')
#
# """------------------ 练习2 ------------------"""
# python_score = float(input('请输入python成绩:'))
# c_score = float(input('请输入c成绩:'))
# if python_score > 60 or c_score > 60:
# print('及格')
# else:
# print('不及格')
"""------------------ 练习3 ------------------"""
# is_employee = bool(input('请输入是否是雇员:')) 错了,字符串不好转换成布尔
is_employee = int(input('请输入是否是雇员:'))
if is_employee:
print('允许进入')
else:
print('不允许进入')
"""
需求
1、定义holiday_name字符串变量记录节日名称
2、如果是情人节 应该买玫瑰、看电影
3、如果是 平安夜 应该买苹果、吃大餐
4、如果是 生日 应该 买蛋糕
5、其他的日子每天都是节日啊~~~~
"""
holiday_name = input("请输入节日名称")
if holiday_name == "情人节":
print("买玫瑰、看电影")
elif holiday_name == "平安夜":
print("买苹果、吃大餐")
elif holiday_name == "生日":
print("买蛋糕")
else:
print("洗洗睡吧,你没有女朋友")
"""
需求
1. 定义布尔型变量 has_ticket 表示是否有车票
2. 定义整型变量 knife_length 表示刀的长度,单位:厘米
3. 首先检查是否有车票,如果有,才允许进行 安检
4. 安检时,需要检查刀的长度,判断是否超过 20 厘米
如果超过 20 厘米,提示刀的长度,不允许上车
如果不超过 20 厘米,安检通过
5. 如果没有车票,不允许进门
"""
has_ticket = int(input("是否有票:"))
if has_ticket == 1:
knife_length = float(input("输入刀的长度:"))
if knife_length <= 20.0:
print("允许上车")
else:
print("不允许上车")
else:
print("不允许上车")
"""
需求
1. 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
2. 电脑 随机 出拳 —— 先假定电脑只会出石头,完成整体代码功能
3. 比较胜负
"""
"""----------------------电脑默认出拳 ----------------------"""
# 1.输入出拳
humam = int(input("请出拳(1:石头、2:剪刀、3:布)"))
# 2.电脑就出石头(1)
computer = 1
# 3.判断胜负
if (humam == 3 and computer==1)or(humam == 2 and computer==3)or(humam == 1 and computer==2):
print("玩家获胜")
elif humam == computer:
print("平局")
else:
print("电脑获胜")
"""----------------------电脑随机出拳 ----------------------"""
import random
# 1.输入出拳
humam = int(input("请出拳(1:石头、2:剪刀、3:布)"))
# 2.电脑就出石头(1)
computer = random.randint(1,3) #产生随机数
# 3.判断胜负
if (humam == 3 and computer==1)or(humam == 2 and computer==3)or(humam == 1 and computer==2):
print("玩家获胜")
elif humam == computer:
print("平局")
else:
print("电脑获胜")
1、while循环基本语法
2 、死循环:
•循环变量主要作用是控制循环什么时候停止下来
•可以debug查看循环变量的执行过程
•死循环指的是程序持续执行,无法终止,原因通常是忘记在循环内部修改循环变量的值
练习
"""
需求:
跟媳妇承认错误,说一万遍"媳妇儿,我错了"
print("媳妇儿,我错了") print("媳妇儿,我错了") print("媳妇儿,我错了") ...(还有99997遍)...
"""
# 1、定义循环变量
num = 9999
# 2、判断循环变量
while num:
print("媳妇儿,我错了")
# 修改循环变量的值
num -= 1
# 死循环
# 循环变量:控制循环次数
# 编程 计数一般从0开始
num = 0
while num < 10000:
print("媳妇儿,我错了")
# 如果不修改循环变量,就会造成死循环
# num += 1
"""
需求:
计算 1 ~ 100 之间所有数字的累计求和结果
"""
num = 1
# 定义变量保存和
Sum = 0
while num <= 100:
Sum +=num
num +=1
print(Sum)
"""---------------------- 计算偶数和_第一种 ----------------------"""
"""
需求:
计算 0 ~ 100 之间 所有 偶数 的累计求和结果
"""
num = 2
# 定义变量保存和
Sum = 0
while num <= 100:
Sum += num
num += 2
print(Sum)
"""---------------------- 计算偶数和_第二种 ----------------------"""
num = 0
# 定义变量保存和
Sum = 0
while num <= 100:
if num % 2 == 0:
Sum += num
num += 1
print(Sum)
"""---------------------- 回文数 ----------------------"""
"""
需求:
打印所有3位回文数
回文数:121 111 333 222 323 343
分析:
3位数:100~999
回文数:个位和百位一致
"""
num = 100
# 定义循环变量
print("回文数",end=":")
while num < 1000:
if (num//100) == (num%10):
# 打印回文数
print(num,end=",")
# 限制循环范围
num += 1
python中没有自增自减
•break 某一条件满足时,不再执行循环体中后续重复的代码,并退出循环
•continue 某一条件满足时,不再执行本次循环体中后续重复的代码,但进入下一次循环判断,在整个循环中,只有某些条件,不需要执行循环代码,而其他条件都需要执行
"""---------------------- 回文数 ----------------------"""
"""
需求:
第一个五位数回文数
分析:
5位数:10000~99999
回文数:个位和百位一致
"""
num = 10000
# 定义循环变量
print("回文数",end=":")
while num < 100000:
if ((num // 10000) == (num % 10)) and ((num % 10000 // 1000) == (num % 100 // 10)):
# 打印回文数
print(num,end=",")
break
# 限制循环范围
num += 1
"""---------------------- 回文数 ----------------------"""
"""
需求:
第一个五位数回文数
分析:
5位数:10000~99999
回文数:个位和百位一致
"""
num = 10000
# 定义循环变量
print("回文数",end=":")
while num < 100000:
if ((num // 10000) == (num % 10)) and ((num % 10000 // 1000) == (num % 100 // 10)):
# 打印回文数
print(num,end=",")
# break
# 限制循环范围
num += 1
"""---------------------- 找到第10个回文数 ----------------------"""
"""
需求:
第十个五位数回文数
分析:
5位数:10000~99999
回文数:个位和百位一致
"""
num = 10000
flag = 0
# 定义循环变量
print("回文数",end=":")
while num < 100000:
if ((num // 10000) == (num % 10)) and ((num % 10000 // 1000) == (num % 100 // 10)):
# 打印回文数
flag += 1
if flag >= 10:
print(num,end=",")
break
# 限制循环范围
num += 1
"""---------------------- 回文数 ----------------------"""
"""
需求:
打印所有3位非回文数
回文数:121 111 333 222 323 343
分析:
3位数:100~999
回文数:个位和百位一致
"""
num = 100
# 定义循环变量
print("回文数",end=":")
while num < 1000:
if not((num//100) == (num%10)):
# 打印回文数
print(num,end=",")
# 限制循环范围
num += 1
•Python pass 是空语句,是为了保持程序结构的完整性
•pass 不做任何事情,一般用做占位语句
while True:
pass # 不做任何事,保证结构的完成性,只为了占位
while嵌套就是:while 里面还有 while
练习
"""---------------------- 打印星星 ----------------------"""
i = 0
while i < 10:
print("* " * i)
i += 1
"""---------------------- 九九乘法表 ----------------------"""
i = 1
while i < 10:
j = 1
while j <= i:
print("%d*%d=%d" % (j, i, i * j), end=" ")
j += 1
print("\n")
i += 1
"""---------------------- 倒的九九乘法表 ----------------------"""
i = 9
while i:
j = 1
while j <= i:
print("%d*%d=%d" % (j, i, i * j), end=" ")
j += 1
print("\n")
i -= 1
•for循环的主要作用是遍历数据(容器)中的元素
•任何可迭代的数据都能通过for循环遍历(‘hello’ )
1、格式
"""
需求:
打印字符串'hello world'中每一个字符
"""
str = "hello world"
for ele in str:
print(ele) # 遍历每一个元素
2、in和not in
•Python in 操作符用于判断元素是否存在于容器中,如果在容器中,返回 true,否则返回 false。
"""---------------------- in是否在里面 ----------------------"""
str = "hello"
print('h' in str)
"""---------------------- not in是否在里面 ----------------------"""
str = "hello"
print('h' not in str)
练习
"""---------------------- 第一题 ----------------------"""
"""
1.打印字符串'hello world'中除了'w'之外的每一个元素
"""
py_str = "hello world"
for ele in py_str:
if ele not in 'w':
print(ele)
"""---------------------- 第二题 ----------------------"""
"""
2.打印字符串'hello world'中第一个'o'出现之前(不包含第一个'o')的所有元素
"""
py_str = "hello world"
for ele in py_str:
if ele not in 'o':
print(ele)
elif ele in 'o':
break
"""---------------------- 第三题 ----------------------"""
"""
3.打印字符串'hello world'中第三个'l'出现之前(不包含第三个'l')的所有元素
"""
flag = 1
py_str = "hello world"
for ele in py_str:
if ele == 'l':
flag += 1
if flag > 3:
break
print(ele)
定义:
•python range() 可创建一个整数列表,一般用在 for 循环中。
•可以把python的range()理解成数学中的左闭右开区间(包含左,不包含右)
"""---------------------- 定义0到100区间 ----------------------"""
# 包含
r = range(0,101)
# 如果从0开始可以简写:r = range(101)
print(r)
# 负数也是可以的
r2 = range(-10,10)
for ele in r2:
print(ele)
"""---------------------- 定义0到100区间 ----------------------"""
# 包含
# r = range(0,101)
# # 如果从0开始可以简写:r = range(101)
# print(r)
# # 负数也是可以的
# r2 = range(-10,10)
# for ele in r2:
# print(ele)
"""---------------------- 获取区间元素 ----------------------"""
# r2 = range(2, 10)
# # 获取第二个元素
# ele = r2.__getitem__(1)
# print(ele)
"""---------------------- 判断元素是否在区间中 ----------------------"""
r = range(10)
print(10 in r)
•else中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while循环也一样
for…else格式
"""---------------------- for和else结合 ----------------------"""
for ele in "hello world":
if ele == "w":
# 循环中有break,并且break需要执行,else才会执行
break
print(ele)
else:
print("不执行")
"""
for else ,只要循环没有执行break(注意:即使有break,没有执行break,也不会影响)
会在循环结束执行else中代码。
"""
"""---------------------- 练习 ----------------------"""
"""
需求:
判断登录密码'hhew2383dW_fkf&E@^'是否合法
要求:
1. 密码必须是数字、字母(大小写都可以)、和下划线,否则不合法
2. 如果密码合法,就输出'密码合法,可以登录'
"""
# i = 0
# py_M = "hhew2383dW_fkf&E@^"
# py_str = input("请输入登录密码")
# for ele in py_str:
# if ele != py_M.__getitem__(i):
# break
# i += 1
# else:
# print("密码合法,可以登录")
•列表
•元组
•集合
•字符串
•字典
公共语法
•在 Python 中,所有 非数字型变量 都支持以下特点:
•都是一个 序列 sequence,也可以理解为 容器
•取值 [0](集合例外 )
•遍历 for in
•计算长度、最大/最小值、比较、删除
•连接 + 和 重复 *
•切片
列表
•列表 是 Python 中使用 最频繁 的数据类型
•专门用于存储 一串 数据,存储的数据 称为 元素
•列表的类型是:list
"""---------------------- 列表 ----------------------"""
name1 = "林青霞"
name2 = "张曼玉"
name3 = "高圆圆"
age = 30
# 定义列表
l = [name1, name2, name3, age] # 可以存不同的数据类型
print(l)
# 列表类型
print(type(l))
"""---------------------- 访问第一个元素 ----------------------"""
# 通过[角标]
ele = l[0]
# 通过__getitem__(0)
# ele = l.__getitem__(0)
print(ele)
列表的遍历
•通过for循环
•通过while循环
"""---------------------- 列表的遍历 ----------------------"""
for ele in l:
print(ele)
i = 0
while i < len(l):
print(l[i])
i += 1
列表的增加和删除
增加
"""---------------------- 列表数据的增加 ----------------------"""
name1 = "林青霞"
name2 = "张曼玉"
name3 = "高圆圆"
l = [name1, name2, name3]
# 追加
l.append("张三丰")
print(l)
# 插入
l.insert(1, "张无忌")
print(l)
# 追加列表
ll = ["刘某", "张某"]
l.extend(ll)
print(l)
删除
"""---------------------- 列表数据的删除 ----------------------"""
name1 = "林青霞"
name2 = "张曼玉"
name3 = "高圆圆"
l = [name1, name2, name3, name3]
# 删除指定数据del 列表[索引]
del l[0]
print(l)
# remove() 删除第一个指定数据
l = [name1, name2, name3, name3]
l.remove('张曼玉')
print(l)
# pop() 删除末尾数据,返回被删除的元素
l = [name1, name2, name3, name3]
print(l.pop(1))
# clear() 清空列表
l = [name1, name2, name3, name3]
print(l.clear())
修改
"""---------------------- 修改元素 ----------------------"""
name1 = "林青霞"
name2 = "张曼玉"
name3 = "高圆圆"
l = [name1, name2, name3]
l[1] = "张无忌"
print(l)
查询
"""---------------------- 查询 ----------------------"""
name1 = "林青霞"
name2 = "张曼玉"
name3 = "高圆圆"
l = [name1, name2, name3, name3]
print(l.index("高圆圆")) # 返回索引值2
print(l.count("高圆圆")) # 返回出现次数
最值
"""---------------------- 排序 ----------------------"""
num = [12, 13, 4, 5, 7, 6, 8]
# 从小到大排序
num.sort()
print(num)
# 从大到小排序
num.sort(reverse=True)
print(num)
"""---------------------- 最值 ----------------------"""
# 最大值
print(max(num))
# 最小值
print(min(num))
"""---------------------- 冒泡排序 ----------------------"""
num = [9, 8, 7, 6, 5, 4, 3, 2, 1]
i = 0
while i < len(num) - 1:
# 内层循环
j = 0
while j < len(num) - i - 1:
# 比较看是否要交换
if num[j] > num[j + 1]:
py_num = num[j]
num[j] = num[j + 1]
num[j + 1] = py_num
j += 1
i += 1
print(num)
goMD-1588436999177)]
"""---------------------- 排序 ----------------------"""
num = [12, 13, 4, 5, 7, 6, 8]
# 从小到大排序
num.sort()
print(num)
# 从大到小排序
num.sort(reverse=True)
print(num)
最值
[外链图片转存中…(img-8cYNny5C-1588436999177)]
"""---------------------- 最值 ----------------------"""
# 最大值
print(max(num))
# 最小值
print(min(num))
"""---------------------- 冒泡排序 ----------------------"""
num = [9, 8, 7, 6, 5, 4, 3, 2, 1]
i = 0
while i < len(num) - 1:
# 内层循环
j = 0
while j < len(num) - i - 1:
# 比较看是否要交换
if num[j] > num[j + 1]:
py_num = num[j]
num[j] = num[j + 1]
num[j + 1] = py_num
j += 1
i += 1
print(num)