3.python-练习(字符串str与列表list)

打印字符串

"""
    根据下列文字,提取变量,使用字符串格式化打印信息
    湖北确诊67802人,治愈63326人,治愈率0.99   
"""

region = "湖南"
confirmed = 67802
cure = 63326
proportion = 0.99

print("%s确诊%s人,治愈%s人,治愈率%.2f%%" % (region, confirmed, cure, proportion * 100))

秒转分

"""
    70秒是01分零10秒
"""
s1 = 70
m = s1 // 60
s2 = s1 % 60

print("%s秒时%.2d分零%.2d秒" % (s1, m, s2))

 字符串切片

"""
  字符串: content = "我是京师监狱狱长金海。"
  打印第一个字符、打印最后一个字符、打印中间字符
  打印字前三个符、打印后三个字符
  命题:金海在字符串content中
  命题:京师监狱不在字符串content中
  通过切片打印“京师监狱狱长”
  通过切片打印“长狱狱监师京”
  通过切片打印“我师狱海”
  倒序打印字符
"""

content = "我是京师监狱狱长金海"
content_len = len(content)

# 第一个字符
print(content[0])

# 最后一个字符
print(content[-1])

# 打印中间字符
print(content[content_len // 2])

# 判断金海在字符串content中
print("金海" in content)

# 判断京师监狱不在字符串content中
print("京师监狱" not in content)

# 通过切片打印"京师监狱狱长"
print(content[2:-2])

# 通过切片打印"长狱狱监师京"
print(content[-3:1:-1])

# 通过切片打印"我师狱海"
print(content[::3])

# 倒序打印字符 海金长狱狱监师京是我
print(content[::-1])

列表练习

"""
    列表练习
"""
# 练习1:创建地区列表、新增列表、现有列表,累计列表,死亡列表分别存储3行(台湾、山西、浙江)信息
list_region = ["台湾", "江西", "浙江"]
list_new = [16, 182, 2]
list_now = [2339, 859, 505]
list_total = [16931, 1573, 2008]
list_die = [850, 3, 1]

# 练习2:
# 向以上四个列表追加数据第4行(广西)信息
list_region.append("广西")
list_new.append(6)
list_now.append(256)
list_total.append(599)
list_die.append(2)

# 在第1个位置插入第5行(香港)信息
list_region.insert(0, "香港")
list_new.insert(0, 9)
list_now.insert(0, 196)
list_total.insert(0, 12598)
list_die.insert(0, 213)

# 练习3:
# 在地区列表读取前两个元素
print(list_region[:2])

# 在新增列表读取后三个元素
print(list_new[-3:])

# 将现有列表所有元素设置为0
list_now[:] = [0] * len(list_now)

# 打印台湾疫情信息(xx地区新增xx人现有xx人)
print("%s地区新增%s人现有%s人" % (list_region[1], list_new[1], list_now[1]))

# 练习4:
# 在地区列表中删除“浙江”
list_region.remove("浙江")
# 在新增列表中删除第1个元素
# 在现有列表中删除前2个元素
# 在死亡列表中删除全部元素
del list_new[0], list_now[:2], list_die[:]


# 练习5:
# 打印地区列表元素(一行一个)
for item in list_region:
    print(item)

# 新增列表元素累加2
for i in range(len(list_new)):
    list_new[i] += 2

# 打印累计列表小于1000的元素
for item in list_total:
    if item < 1000:
        print(item)

# 累计列表小于2000的元素设置为0
for i in range(len(list_total)):
    if list_total[i] < 2000:
        list_total[i] = 0

列表练习2

"""
    练习5:
    八大行星:"水星" "金星" "地球" "火星" "木星" "土星" "天王星" "海王星"
      -- 创建列表存储4个行星:“水星” "金星" "火星" "木星"
      -- 插入"地球"、追加"土星" "天王星" "海王星"
      -- 打印距离太阳最近、最远的行星(第一个和最后一个元素)
      -- 打印太阳到地球之间的行星(前两个行星)
      -- 删除"海王星",删除第四个行星
      -- 打印所有行星(一行一个)
"""
# 创建列表存储4个行星:“水星” "金星" "火星" "木星"
list_planet = ["水星", "金星", "火星", "木星"]

# 插入"地球"
list_planet.insert(2, "地球")

# 追加"土星" "天王星" "海王星"
# list_planet.append("土星")
# list_planet.append("天王星")
# list_planet.append("海王星")
list_planet += ["土星", "天王星", "海王星"]

# 打印距离太阳最近、最远的行星(第一个和最后一个元素)
print(list_planet[0])
print(list_planet[-1])

# 打印太阳到地球之间的行星(前两个行星)
print(list_planet[0:2])

# 删除"海王星"
list_planet.remove("海王星")

# 删除第四个行星
del list_planet[3]

# 打印所有行星(一行一个)
for item in list_planet:
    print(item)

字符串运算

"""
    根据列表中的数字,重复生成*.
        list01 = [1, 2, 3, 4, 5, 4, 3, 2, 1]
    效果:
        *
        **
        ***
        ****
        *****
        ****
        ***
        **
        *
"""

list_number = [1, 2, 3, 4, 5, 4, 3, 2, 1]
stars = "*"
for i in range(len(list_number)):
    print(stars * list_number[i])

列表累乘

"""
   将列表中的数字累乘
   list01 = [5, 1, 4, 6, 7, 4, 6, 8, 5]
   结果:806400
"""

list_number = [5, 1, 4, 6, 7, 4, 6, 8, 5]
product = 1

for item in list_number:
    product *= item

print(product)

平均值,最大值,最小值

"""
   在终端中录入5个疫情省份的确诊人数
   最后打印最大值、最小值、平均值.
   (使用内建函数实现)
"""

list_diagnosis = []

for i in range(5):
    list_diagnosis.append(int(input("请输入第%s个疫情省份的确诊人数:" % (i + 1))))

# 最大值
print(max(list_diagnosis))
# 最小值
print(min(list_diagnosis))
# 平均
print(sum(list_diagnosis) // len(list_diagnosis))

小球从高处落下弹起,位移距离

"""
    一个小球从100m高度落下,每次弹回原高度一半.
    计算:
    -- 总共弹起多少次?(最小弹起高度0.01m)   13 次
    -- 全过程总共移动多少米?
    数据:高度       次数     距离
    处理:高度/=2   次数+=1  距离+=?

    速记手册
    https://www.processon.com/view/link/6389c900e0b34d0711c0555f
"""
height = 100
count = 0
distance = height

# height 是下落是的高度
# 0.01 是上升的高度
# while height > 0.01:
# height / 2 是上升高度
while height / 2 > 0.01:
    # 重复
    height /= 2
    count += 1
    distance += height * 2 # 累加起落距离
    print("第%s次弹起来的高度是%s" % (count, height))

print("总共弹起来%s次" % count)
print("总共移动%.2f米" % distance)

 

posted @ 2022-12-05 18:54  跃动指尖  阅读(193)  评论(0)    收藏  举报