Python-Level1-day04 循环语句for;跳转语句;容器之字符串;容器通用操作

Python-Level1-day04 循环语句for;跳转语句;容器之字符串;容器通用操作

0 复习与作业

作业
1. 三(代码demo、图片、理论)合一
2. 当天练习独立完成
3. 写出下列程序运行结果:
    (1)
        input_number = 8
        random_number = 8
        if input_number == random_number:
            print("猜对了")
        else:
            print("猜错了")
    (2)
        num = 12
        if num > 3:
            print("⼤于3")
        elif num > 5:
            print("⼤于5")
        elif num > 10:
            print("⼤于10")
        elif num > 15:
            print("⼤于15")
    (3)
        str_value = ""
​
        #if str_value:
            #new_str = str_value
        #else:
            #new_str = "empty"
​
        new_str = str_value if str_value else "empty"
        print(new_str)
​
4. 根据需求写出程序
    (1) 电梯设置规定:
            如果承载⼈不超过10⼈,且总重量不超过1000千克,可以正常使⽤,否则提示超载。
        步骤:
            终端中获取人数/总重量
            显示电梯正常运行
                电梯超载
​
    (2) 根据年龄,输出对应的人生阶段。
            年龄       ⼈⽣阶段
            0-6 岁      童年
            7-17 岁     少年
            18-40 岁    ⻘年
            41-65 岁    中年
            65 岁之后    ⽼年
        步骤:
            终端中获取年龄
            显示人生阶段
​
    (3) 如果是vip客户,消费小于等于500,享受85折
                    消费大于500,享受8折
        如果不是vip客户,消费大于等于800,享受9折
                      消费小于800,原价
        在终端中输入账户类型,消费金额,计算折扣.
​
    (4)
        在终端中录入4个同学体重,打印最轻的值.
        效果:
            请输入第1个同学体重:100
            请输入第2个同学体重:120
            请输入第3个同学体重:93
            请输入第4个同学体重:160
            最轻的同学:93
5. 阅读
    程序员的数学第二章
    Python入门到实践第二章

"""
电梯设置规定:
            如果承载⼈不超过10⼈,且总重量不超过1000千克,可以正常使⽤,否则提示超载。
        步骤:
            终端中获取人数/总重量
            显示电梯正常运行
                电梯超载
"""
if int(input("people")) >= 10 and int(input("weight")) >= 1000:
    print("no")
else:
    print("ok")
"""

"""
 (2) 根据年龄,输出对应的人生阶段。
            年龄       ⼈⽣阶段
            0-6 岁      童年
            7-17 岁     少年
            18-40 岁    ⻘年
            41-65 岁    中年
            65 岁之后    ⽼年
        步骤:
            终端中获取年龄
            显示人生阶段
"""
​
age = int(input("age"))
if age < 6:
    print(1)
elif age < 17:
    print(2)
elif age < 40:
    print(3)
elif age < 65:
    print(4)
elif age < 80:
    print(5)
else:
    print(6)
​

"""
如果是vip客户,消费小于等于500,享受85折
                    消费大于500,享受8折
        如果不是vip客户,消费大于等于800,享受9折
                      消费小于800,原价
        在终端中输入账户类型,消费金额,计算折扣.
"""
price = int(input("price"))
vip = input("vip")
if vip == "vip":
    if price < 500:
        price *= 0.85
    else:
        price *= 0.8
else:
    if price > 800:
        price *= 0.9
print(price)
​

"""
在终端中录入4个同学体重,打印最轻的值.
        效果:
            请输入第1个同学体重:100
            请输入第2个同学体重:120
            请输入第3个同学体重:93
            请输入第4个同学体重:160
            最轻的同学:93
"""
weight1 = int(input("weight1"))
weight2 = int(input("weight2"))
weight3 = int(input("weight3"))
weight4 = int(input("weight4"))
​
temp = weight1
if weight2 < temp:
    temp = weight2
if weight3 < temp:
    temp = weight3
if weight4 < temp:
    temp = weight4
print(temp)
​
​

1 while循环

"""
    while 循环计数
        1.开始值
        2.结束
        3.间隔
"""
count = 0
while count < 5:
    count += 1
    print("go")

"""
在终端中显示 0 1 2 3
在终端中显示 2 3 4 5 6
在终端中显示 1 3 5 7
在终端中显示 8 7 6 5 4
在终端中显示-1 -2 -3 -4 -5
"""
count = 0
while count < 4:
    print(count)
    count += 1
​
count = 2
while count < 7:
    print(count)
    count += 1
​
count = 1
while count < 8:
    print(count)
    count += 2
​
count = 8
while count >= 4:
    print(count)
    count -= 1
​
count = -1
while count >= -5:
    print(count)
    count -= 1

"""
一张纸的厚度是 0.01 毫米 请计算,对折多少次超过珠穆朗玛峰(8844.43 米)
"""
height = 1e-5
count = 0
while height < 8844.43:
    height *= 2
    count += 1
print(count)

"""
练习 3:在终端中循环录入 5 个成绩,
最后打印平均成绩(总成绩除以人数)
效果:请输入成绩:98
请输入成绩:83
请输入成绩:90
请输入成绩:99
请输入成绩:78
平均分:89.6
"""
​
count = 5
score = 0
while count > 0:
    count -= 1
    score += int(input("score"))
print(score / 5)
​
"""

"""
程序产生 1 个,1 到 100 之间的随机数。
让玩家重复猜测,直到猜对为止。
每次提示:大了、小了、恭喜猜对了,总共猜了多少次。
"""
import random  # 随机数工具
​
num = random.randint(1, 100)
count = 0
while True:
    num1 = int(input("num"))
    if num1 > num:
        print("big")
        count += 1
    elif num1 < num:
        print("small")
        count += 1
    else:
        print("yes")
        print(count+1)
        break
​

"""
    猜数字2.0
        最多猜 3次,超过就提示游戏失败
    while 与 else 配对的特点在这个语言独有,
    执行过循环体内容就不会执行else内语句
"""
import random  # 随机数工具
​
num = random.randint(1, 100)
count = 0
while count < 3:
    num1 = int(input("num"))
    if num1 > num:
        print("big")
        count += 1
    elif num1 < num:
        print("small")
        count += 1
    else:
        print("yes sucess")
        print(count+1)
        break
else:
    print("no sucess")
​

2 for循环

for 语句

  1. 作用: 用来遍历可迭代对象的数据元素。可迭代对象是指能依次获取数据元素的对象,例如:容器类型。

  1. 语法:

for 变量列表 in 可迭代对象:

语句块 1

else:

语句块 2

  1. 说明:else 子句可以省略。在循环体内用 break 终止循环时,else 子句不执行。

"""
    for 变量 in 字符串(可迭代对象):
        语句块
"""
​
message = "abcdefghijklmnopqrstuvwxyz"
for item in message:
    print(item)
​
message = "我是孙悟空"  # 通过内存理解它
for item in message:  # for只能读取容器,不能修改,字符串本身就不能修改
    item = "a"#修改变量item,不影响message数据
    print(item)
print(message)
​
​

 

"""
在终端中输入任意整数,计算累加和.
"1234" -> "1" -> 累加 1
请输入一个整数:12345 累加和是 15
"""
​
message = input("please")
sum = 0
for item in message:
    sum += int(item)
print(sum)
​

range 函数

  1. 作用:用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)。

  2. 语法:range(开始点,结束点,间隔)

  1. 说明: 函数返回的可迭代对象可以用 for 取出其中的元素,返回的数字不包含结束点,开始点默认为 0,间隔默认值为 1

"""
    for+range(开始,结束,间隔)配合:不包括结束
    适合确定结束循环条件的,while适合不确定循环条件的
"""
for item in range(3,8,1):#间隔默认1
    print(item)
​
for item in range(8):#间隔默认1,开始值默认0
    print(item)

"""
在终端中累加 0 1 2 3
在终端中累加 2 3 4 5 6
在终端中累加 1 3 5 7
在终端中累加 8 7 6 5 4
在终端中累加-1 -2 -3 -4 -5
"""
print(range(5))  # 打印range(0, 5)
​
sum = 0
for item in range(4):
    sum += item
print(sum)
​
sum = 0
for item in range(2, 7):
    sum += item
print(sum)
​
sum = 0
for item in range(1, 8, 2):
    sum += item
print(sum)
​
sum = 0
for item in range(8, 3, -1): 
    sum += item
print(sum)
​
sum = 0
for item in range(-1, -6, -1):
    sum += item
print(sum)
​

3 跳转语句

break 语句

  1. 跳出循环体,后面的代码不再执行。

  1. 可以让 while 语句的 else 部分不执行。

continue 语句

跳过本次,继续下次循环。

"""
    累加1-100
"""
sum = 0
for num in range(101):
    sum += num
print(sum)
​
sum = 0
for num in range(101):
    if num % 3 == 0:
        sum += num
print(sum)
​
sum = 0
for num in range(101):
    if num % 3 != 0:
        continue  # 跳过本次循环 break跳出这一层循环
    sum += num
print(sum)
​

"""
累加 10 -- 60 之间,个位不是 3/5/8 的整数和
"""
#两种思路:满住条件做,或者不满足条件跳过
​
sum = 0
for i in range(10, 61):
    if i % 10 in (3, 5, 8):
        continue
    sum += i
print(sum)
​
sum = 0
for i in range(10, 61):
    if i % 10 == 3 or i % 10 == 5 or i % 10 == 8:
        continue
    sum += i
print(sum)
​

4 容器之字符串

字符串 str

定义:由一系列字符组成的不可变序列容器,存储的是字符的编码值。序列即有顺序的连续存储,之间没有缝隙。

编码

  1. 字节 byte:计算机最小存储单位,等于 8 位 bit.

  1. 字符:单个的数字,文字与符号。

  1. 字符集(码表):存储字符与二进制序列的对应关系。

  1. 编码:将字符转换为对应的二进制序列的过程。

  1. 解码:将二进制序列转换为对应的字符的过程。

  1. 编码方式:

--ASCII 编码:包含英文、数字等字符,每个字符 1 个字节。

--GBK 编码:兼容 ASCII 编码,包含 21003 个中文;英文 1 个字节,汉字 2 个字节。

--Unicode 字符集:国际统一编码,旧字符集每个字符 2 字节,新字符集 4 字节。

--UTF-8 编码:Unicode 的存储与传输方式,英文 1 字节,中文 3 字节。

相关函数

  1. ord(字符串):返回该字符的 Unicode 码。

  1. chr(整数):返回该整数对应的字符。

"""
    字符串:数据不可变。原因是如果在原有内存空间修改,会破坏其他数据类型(损人利己)
    如果要变,就只能创建新数据,用变量指向他
"""
name = "悟空"
name = "孙悟空"  # 是数据不可变性,不是变量
​
num = ord("a")
print(num)
​
a = chr(67)
print(a)
​

"""
练习:在终端中录入一个内容,循环打印每个文字的编码值。
 效果:请输入文字:qtx 113 116 120
​
循环录入编码值打印文字,直到输入空字符串停止。
 效果:请输入数字:113 q
 请输入数字:116 t
 请输入数字:
 Process finished with exit code 0
"""
# message = input("please")
# for item in message:
#     print(ord(item))
​
while True:
    i = input("please")
    if i == "":
        break
    else:
        print(chr(int(i)))
​

字符串字面值

单引和双引号的区别

  1. 单引号内的双引号不算结束符

  1. 双引号内的单引号不算结束符

三引号作用

  1. 换行会自动转换为换行符\n

  1. 三引号内可以包含单引号和双引号

  1. 作为文档字符串

转义字符

  1. 改变字符的原始含义。 \’ \” \””” \n \ \t \0 空字符

  1. 原始字符串:取消转义。a = r”C:\newfile\test.py”

字符串格式化

  1. 定义:生成一定格式的字符串。

  1. 语法:字符串%(变量)"我的名字是%s,年龄是%s" % (name, age)

  1. 类型码:%s 字符串 %d 整数 %f 浮点数

"""
    字符串字面值:三种写法
​
    单(与双引号功能一样,但习惯用双引号)
    双
    三(所见即所得) 三单与三双没区别
"""
content = 'sdfs'
content = "asda"
content = """sdf
                sd
                    hh"""
content = '''ds
             fs'''
print(content)
​
​
"""
    引号冲突问题
"""
print("我是'shunwukong' ")#用不同引号即可解决引号冲突问题
​
​
#转义字符(\"):根本上解决引号冲突,引号前面加个斜杠就可以
# 其中\t表示tab,
print("我是\"shunwu\tkong\" ")#我是"shunwu  kong"
​
# r 原始字符串 不读取成转义字符
print(r"32\n\r\''")#32\n\r\''
​
# 字符串格式化打印
i = "abc"
b = "abcd"
print("i == %s,b == %s" % (i, b))
i = 99.9
print("ok = %s%%"%(i))#两个百分号表示一个百分号打印
​
# %s 既可以给%d 与 %f 表示,但是缺点是不能进行保留几位有效数
#如%0.2f表示保留两位小数
#如%.2d表示两位数值宽度
​
​

"""
根据下列文字,提取变量,使用字符串格式化打印信息
湖北确诊 67802 人,治愈 63326 人,治愈率 0.99
70 秒是 01 分零 10 秒
​
"""
a = 234
b = 342
c = 0.3242
print("hubei que zheng %s ,zhi yu %s  "
      "zhi yu lv %0.2f" % (a, b, 0.345345))
​
​
print("%.2d 秒是 %.2d 分零 %2.d 秒" % (70, 1, 10))
​

5 容器通用操作

通用操作

数学运算符

  1. +:用于拼接两个容器

  1. +=:用原容器与右侧容器拼接,并重新绑定变量

  1. *:重复生成容器元素

  1. *=:用原容器生成重复元素, 并重新绑定变量

  1. < <= > >= == !=:依次比较两个容器中元素,一但不同则返回比较结果。

成员运算符

  1. 语法:数据 in 序列;数据 not in 序列

  1. 作用:如果在指定的序列中找到值,返回 bool 类型。

"""
容器的通用操作
    算术运算符
        +
        *
        比较
"""
name = "ba"
name1 = "wu"
name2 = name + name1
print(name2)
​
name2 = name1 * 6
print(name2)
​
# 支持字符串容器比大小
print(name2 > name)  # 比较的是编码字符大小,一旦不同就比较结束
print((1, 2, 3) < (1, 3, 2))
​
# 成员运算符 :看顺序在不在判断
print("abc" in "abcdefg")
print("abc" not in "abcdefg")
​

"""
练习:在终端中获取一个整数,作为边长,打印矩形。
"""
# a = int(input("please"))
# b = a
# print("*" * a)
# while a - 2 > 0:
#     a -= 1
#     print("*%s*" % (" " * (b - 2)))
# print("*" * b)
​
​
a = int(input("please"))
print("*" * a)  # 打印第一行*
for __ in range(a - 2):  # 后面如果不用变量也可以用下划线代替哦
    print("*%s*" % (" " * (a - 2)))
print("*" * a)  # 打印最后一行*
​

索引 index

  1. 作用:定位单个容器元素。

  1. 语法:容器[整数]

  1. 说明:正向索引从 0 开始,第二个索引为 1,最后一个为 len(s)-1。

反向索引从-1 开始,-1 代表最后一个,-2 代表倒数第二个,以此类推,第一个是-len(s)。

"""
索引 index
​
"""
​
messa = "abcdefghijklmnopqrstuvwxyz"
​
print(messa[0])
​
print(messa[-1])
​
print(messa[len(messa)-1])
​
print(messa[-len(messa)])
​
​

homework

作业
1. 三合一
2. 当天练习独立完成
3. 自学教程的字符串新版占位符f-string
    https://www.runoob.com/python3/python3-string.html
4. 模拟登录
    如果账号的密码错误3次,提示锁定账户,效果如下:
        请输入账号:qtx
        请输入密码:1234
        登录失败
        你还剩余 2 次机会
        请输入账号:Qtx
        请输入密码:1234
        登录失败
        你还剩余 1 次机会
        请输入账号:Qtx
        请输入密码:123456
        登录成功
6. (选做)赌大小游戏
    玩家的身家初始10000,实现下列效果:
        少侠请下注: 30000
        超出了你的身家,请重新投注。
        少侠请下注: 8000
        你摇出了5点,庄家摇出了3点
        恭喜啦,你赢了,继续赌下去早晚会输光的,身家还剩18000
        少侠请下注: 18000
        你摇出了6点,庄家摇出了6点
        打平了,少侠,在来一局?
        少侠请下注: 18000
        你摇出了4点,庄家摇出了6点
        少侠,你输了,身家还剩 0
        哈哈哈,少侠你已经破产,无资格进行游戏
​
7. (选做)一个小球从100m高度落下,每次弹回原高度一半.
   计算:
    -- 总共弹起多少次?(最小弹起高度0.01m)
    -- 全过程总共移动多少米?
   提示:
       数据/算法
​
8.阅读
    https://unicode-table.com/cn/
    程序员的数学第四章:数学归纳法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dpq666dpq666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值