python_day04(笔记及练习)

for 语句
1. 作用:
用来遍历可迭代对象的数据元素。
可迭代对象是指能依次获取数据元素的对象,例如:容器类型。
2. 语法:
for 变量列表 in 可迭代对象:
语句块1
else:
语句块2
3. 说明:
else子句可以省略。
在循环体内用break终止循环时,else子句不执行。

message = "我是齐天大圣孙悟空"

for item in message:
    print(item)# "1"   -->  1
# 练习:
# 获取一个任意整数           123456
# 输出每位相加和            1+2+3+4+...
str_number = input("请输入任意整数:")

# 1. 循环以前定义变量(存储累加和)
sum_value = 0

for item in str_number:
    # 2. 循环以内进行累加
    sum_value += int(item)

# 3. 循环以外获取结果
print(sum_value)
# 整数生成器:产生一个范围内的整数
# 开始值  结束值(不包含)  变化量
for item in range(0, 6, 1):
    print(item)  # 0 1 2 3 4 5

# 结束值(开始值默认为0,变化量默认为1)
for item in range(6):
    print(item)

# 开始值,结束值
for item in range(3, 6):
    print(item)

range 函数
1. 作用:
用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)。
2. 语法:
range(开始点,结束点,间隔)
3. 说明:
函数返回的可迭代对象可以用for取出其中的元素
返回的数字不包含结束点
开始点默认为0
间隔默认值为1

"""
    随机加法考试题
        程序产生2个随机数
        获取( a+b=? )两个数相加结果
        如果答对加10分,否则减5分.
        总共3道题,最后打印分数。
"""
import random

score = 0
for __ in range(3):
    number01 = random.randint(1, 100)
    number02 = random.randint(1, 100)
    message = str(number01) + "+" + str(number02) + "=?"
    input_number = int(input(message))
    # if input_number  ==  number01 + number02:
    #     score += 10
    # else:
    #     score -= 5
    score += 10 if input_number == number01 + number02 else -5

print("总分:"+str(score))

跳转语句
break 语句
1. 跳出循环体,后面的代码不再执行。
2. 可以让while语句的else部分不执行。
continue 语句
跳过本次,继续下次循环。

"""
    练习1:在终端中获取一个字符串,打印出每个文字的编码值.
    练习2:在终端中循环录入编码值,打印每个文字.
          要求:如果录入空字符串,则程序退出。
"""
content = input("请输入:")
for item in content:
    print(ord(item))

while True:
    value = input("请输入编码值:")
    if value == "":
        break
    char = chr(int(value))
    print(char)
# 练习1:在终端中显示0 1 2
for item in range(3):
    print(item)
# 练习2:在终端中显示6 7 8 9  10
for item in range(6,11):
    print(item)
# 练习3:在终端中显示2 4 6 8
for item in range(2,9,2):
    print(item)
# 练习4:在终端中显示9 8 7 6 5 4 3
for item in range(9,2,-1):
    print(item)
# 练习5:在终端中显示-1 -2 -3 -4 -5 -6
for item in range(-1,-7,-1):
    print(item)
""
    continue
    练习:exercise04

    语句小结:
        循环语句:
            while :根据条件重复执行(不知道次数)
                例如:对折到超过珠穆朗玛则停止
            for : 根据次数执行(循环计数)
                例如:3道考试题/对折20次
        跳转语句:
            break:跳出(循环停止)
            continue:跳过(循环继续)
            备注:如果循环嵌套,跳转语句只对一层起作用.

        range 属于可迭代对象,所以获取数据使用for.
"""
# 累加:1--100之间能被3整除的整数
# sum_value = 0
# for number in range(1, 101):
#     满足条件则累加
#     if number % 3 == 0:
#         sum_value += number
# print(sum_value)

sum_value = 0
for number in range(1, 101):
    #     不满足条件则跳过
    if number % 3 != 0:
        continue  # 跳过(当前元素,继续循环)
    sum_value += number
print(sum_value)

"""
    累加10 -- 80 之间个位不是3/5/9的整数
    调试:体会continue的过程
"""
sum_value = 0
for number in range(10, 81):
    unit01 = number % 10
    # 是他们就跳过
    if unit01 == 3 or unit01 == 5 or unit01 == 9:
        continue
    sum_value += number
print(sum_value)

容器类型
通用操作
数学运算符
1. +:用于拼接两个容器
2. +=:用原容器与右侧容器拼接,并重新绑定变量
3. *:重复生成容器元素
4. *=:用原容器生成重复元素, 并重新绑定变量
5. < <= > >= == !=:依次比较两个容器中元素,一但不同则返回比较结果。
成员运算符
1. 语法:
数据 in 序列
数据 not in 序列
2. 作用:
如果在指定的序列中找到值,返回bool类型。
索引index
1. 作用:定位单个容器元素
2. 语法:容器[整数]
3. 说明:
正向索引从0开始,第二个索引为1,最后一个为len(s)-1。
反向索引从-1开始,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(s)。
切片slice
1. 作用:
定位多个容器元素。
2. 语法:
容器[(开始索引):(结束索引)(:(步长))]
3. 说明:
小括号()括起的部分代表可省略
结束索引不包含该位置元素
步长是切片每次获取完当前元素后移动的偏移量

# 练习:
# -- 打印第一个字符
# -- 打印最后一个字符
# -- 打印中间的字符 len(message)
# -- 打印前3个字符
# -- 打印后4个字符(正向)
# -- 打印:是教主无
# -- 倒序打印所有字符
# -- 尝试...
message = "我是明教教主张无忌"
print(message[0])
print(message[-1])
print(message[len(message) // 2])
print(message[:3])
print(message[-4:])
print(message[1::2])
print(message[::-1])
"""
    通用操作
    练习:exercise07
    
"""
# 1. 算数运算符
# -- +容器元素拼接
name01 = "悟空"
name01 += "八戒"
# -- *容器元素重复多次
name02 = "唐僧"
name02 *= 2
print(name02)
# -- == !=
# 依次比较两个容器中元素,一但不同则返回比较结果。
print("悟空" > "八戒")

# 2. 成员运算 in   not in
print("我爱" in "我爱你")  # true
print("爱我" in "我爱你")  # flase

message = "我是齐天大圣."
# 3. 索引:定位单个元素
print(message[1])
print(message[-2])
# 索引越界
# print(message[7])# 报错 IndexError
# print(message[-8])# 报错 IndexError
# 4. 切片:定位多个元素
# range(  ,  ,  )

# [开始索引:结束索引:间隔]    不包含结束索引
print(message[0:4:1])  # 我是齐天
# [:结束索引:]
print(message[:4:])  # 我是齐天
# [:]
print(message[:])  # 我是齐天大圣.
# message[::-1]
print(message[::-1])  # .圣大天齐是我
# [开始索引::]
print(message[3::])  # 天大圣.
# [::间隔]
print(message[::2])  # 我齐大.
# 切片不会越界
print(message[:100])  # 我是齐天大圣.
print(message[3:3])  # 获取空
print(message[1:-2])  # 是齐天大
print(message[1:5:-1])  # 获取空

字符串 str
定义
由一系列字符组成的不可变序列容器,存储的是字符的编码值。

"""
    字符串
    练习:exercise05
"""

# 1. 不可变
name = "悟空"
name = "孙悟空"
print(name)  # 创建新字符串对象(孙悟空),替换变量存储的地址。
# 假设可以在原有基础上进行扩充,很可能破坏其他对象内存空间.

# 2. 编码相关函数
# 字 -->  数
print(ord("天"))

# 数 --> 字
print(chr(22825))
"""
    字符串字面值
    练习:exercise06.py
"""

# 1. 双引号
name01 = "悟空"
#    单引号
name02 = '悟空'

#    三引号(可见即所得)
name03 = '''悟空'''
name04 = """悟空"""

message = '我叫"齐天大圣".'
message = "我叫'齐天大圣'."
message = """我叫'齐"天大"圣'."""

# 2. 转义字符:改变字符的原始含义。
# \"  \'   \\
message = "我叫\"齐天大圣\"."
url = "C:\\arogram Files\\bntel\cedia SDK"
# 原始字符串:没有转义字符
url = r"C:\arogram Files\bntel\cedia SDK"
print(url)

# \t 水平制表格
print("我爱\t编程.")
# \n 换行
print("我爱\n编程.")

# 3. 字符串格式化
name = "qtx"
age = 18
score = 95.12345
print("我的名字是%s,年龄是%d,成绩是%.3f" % (name, age, score))

编码
1. 字节byte:计算机最小存储单位,等于8 位bit.
2. 字符:单个的数字,文字与符号。
3. 字符集(码表):存储字符与二进制序列的对应关系。
4. 编码:将字符转换为对应的二进制序列的过程。
5. 解码:将二进制序列转换为对应的字符的过程。
6. 编码方式:
–ASCII编码:包含英文、数字等字符,每个字符1个字节。
–GBK编码:兼容ASCII编码,包含21003个中文;英文1个字节,汉字2个字节。
–Unicode字符集:国际统一编码,旧字符集每个字符2字节,新字符集4字节。
–UTF-8编码:Unicode的存储与传输方式,英文1字节,中文3字节。
相关函数
1. ord(字符串):返回该字符串的Unicode码。
2. chr(整数):返回该整数对应的字符串。
字面值
单引和双引号的区别
1. 单引号内的双引号不算结束符
2. 双引号内的单引号不算结束符
三引号作用
1. 换行会自动转换为换行符\n
2. 三引号内可以包含单引号和双引号
3. 作为文档字符串
转义字符
1. 改变字符的原始含义。
\’ \” \””” \n \ \t \0 空字符
2. 原始字符串:取消转义。
a = r”C:\newfile\test.py”
字符串格式化
1. 定义:
生成一定格式的字符串。
2. 语法:
字符串%(变量)
“我的名字是%s,年龄是%s” % (name, age)
3. 类型码:
%s 字符串 %d整数 %f 浮点数

# 根据格式显示字符串
# ?天?小时?分钟
# print(day + "天" + hour + "小时" + minute + "分钟")
day = 1
hor = 2
minute = 3
print("%d天%d小时%d分钟" % (day, hor, minute))

# ?斤零?两
# print(str(jin) + "斤零" + str(liang) + "两")
jin = 3
liang = 2
message = "%d斤零%d两" % (jin, liang)
print(message)

# ?+?=?
# print(str(number01) + "+" + str(number02) + "=?")
number01 = 10
number02 = 5
print("%d+%d=%d" % (number01, number02, number01 + number02))

列表 list
定义
由一系列变量组成的可变序列容器。
基础操作
1. 创建列表:
列表名 = []
列表名 = list(可迭代对象)
2. 添加元素:
列表名.append(元素)
列表.insert(索引,元素)
3. 定位元素:
列表名[索引] = 元素
变量 = 列表名[索引]
变量 = 列表名[切片] # 赋值给变量的是切片所创建的新列表
列表名[切片] = 容器 # 右侧必须是可迭代对象,左侧切片没有创建新列表。遍历列表:
正向:
for 变量名 in 列表名:
变量名就是元素
反向:
for 索引名 in range(len(列表名)-1,-1,-1):
列表名[索引名]就是元素
4. 删除元素:
列表名.remove(元素)
del 列表名[索引或切片]

"""
    八大行星:
    1. 创建列表存储行星:
      "金星","地球","火星","木星","土星","天王星"
    2. 在第一个位置插入 "水星"
    3. 在末尾追加"海王星"
    4. 打印从太阳到地球之间的行星(前两个行星)
    5. 打印地球以后的行星(一行一个)
    6. 倒序打印所有行星
"""
list_planets = ["金星","地球","火星","木星","土星","天王星"]
list_planets.insert(0,"水星")
list_planets.append("海王星")
print(list_planets[:2])

# for item in list_planets[3:]:# 拷贝了新列表
#     print(item)

for i in range(3,len(list_planets)):
    print(list_planets[i])

for i in range(len(list_planets)-1,-1,-1):
    print(list_planets[i])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值