day02(语句&&数据类型)

day02(语句&&数据类型)

1、条件控制语句(if)

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格式

day02(语句&&数据类型)_第1张图片

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("电脑获胜")

2、循环语句(while)

1、while循环基本语法

day02(语句&&数据类型)_第2张图片

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中没有自增自减

模板配置day02(语句&&数据类型)_第3张图片day02(语句&&数据类型)_第4张图片day02(语句&&数据类型)_第5张图片day02(语句&&数据类型)_第6张图片

day02(语句&&数据类型)_第7张图片

3、break和continue

•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

4、pass语句

•Python pass 是空语句,是为了保持程序结构的完整性

•pass 不做任何事情,一般用做占位语句

while True:
    pass		# 不做任何事,保证结构的完成性,只为了占位 

5、while嵌套

while嵌套就是:while 里面还有 while

day02(语句&&数据类型)_第8张图片

练习

"""---------------------- 打印星星 ----------------------"""
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

6、for循环

•for循环的主要作用是遍历数据(容器)中的元素

•任何可迭代的数据都能通过for循环遍历(‘hello’ )

1、格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9VbU51SA-1588436999173)(img\5.png)]

"""
需求:
打印字符串'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)

7、区间的定义和使用(range)

定义:

•python range() 可创建一个整数列表,一般用在 for 循环中。

•可以把python的range()理解成数学中的左闭右开区间(包含左,不包含右)

  • 格式
    day02(语句&&数据类型)_第9张图片
"""---------------------- 定义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)

8、循环else结合

•else中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while循环也一样

for…else格式

day02(语句&&数据类型)_第10张图片

"""---------------------- 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("密码合法,可以登录")

9、高级变量类型

•列表

•元组

•集合

•字符串

•字典

公共语法

•在 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)
  1. 列表的遍历

    •通过for循环

    •通过while循环

"""---------------------- 列表的遍历 ----------------------"""
for ele in l:
    print(ele)

i = 0
while i < len(l):
    print(l[i])
    i += 1

  1. 列表的增加和删除

    增加

day02(语句&&数据类型)_第11张图片

"""---------------------- 列表数据的增加 ----------------------"""
name1 = "林青霞"
name2 = "张曼玉"
name3 = "高圆圆"

l = [name1, name2, name3]

# 追加
l.append("张三丰")
print(l)
# 插入
l.insert(1, "张无忌")
print(l)
# 追加列表
ll = ["刘某", "张某"]
l.extend(ll)
print(l)

删除

day02(语句&&数据类型)_第12张图片

"""---------------------- 列表数据的删除 ----------------------"""
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())

修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UC0yVpvW-1588436999176)(img\10.png)]

"""---------------------- 修改元素 ----------------------"""
name1 = "林青霞"
name2 = "张曼玉"
name3 = "高圆圆"

l = [name1, name2, name3]
l[1] = "张无忌"
print(l)

查询

day02(语句&&数据类型)_第13张图片

"""---------------------- 查询 ----------------------"""
name1 = "林青霞"
name2 = "张曼玉"
name3 = "高圆圆"

l = [name1, name2, name3, name3]
print(l.index("高圆圆"))  # 返回索引值2

print(l.count("高圆圆"))  # 返回出现次数

最值

  • 排序

    day02(语句&&数据类型)_第14张图片

"""---------------------- 排序 ----------------------"""
num = [12, 13, 4, 5, 7, 6, 8]
# 从小到大排序
num.sort()
print(num)
# 从大到小排序
num.sort(reverse=True)
print(num)
  • 最值day02(语句&&数据类型)_第15张图片
"""---------------------- 最值 ----------------------"""
# 最大值
print(max(num))
# 最小值
print(min(num))

10、冒泡排序法

"""---------------------- 冒泡排序 ----------------------"""
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))

10、冒泡排序法

"""---------------------- 冒泡排序 ----------------------"""
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)

你可能感兴趣的:(Python)