python学习基础第一阶段day04

for 循环

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

message = “我是齐天大圣孙悟空”

for item in message:
print(item)

for – 循环计数

range 函数

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

整数生成器:产生一个范围内的整数

开始值 结束值(不包含) 变化量

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)

continue 语句

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

累加:1–100之间能被3整除的整数
方法1:
sum_value = 0
for number in range(1, 101):
满足条件则累加
if number % 3 == 0:
sum_value += number
print(sum_value)

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

字符串

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

编码

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

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

# 数 --> 字
print(chr(22825))

字面值

单引和双引号的区别

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

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

1. 双引号

name01 = “悟空”

# 单引号
name02 = ‘悟空’

三引号作用

 1. 换行会自动转换为换行符\n
	2. 三引号内可以包含单引号和双引号
	3. 作为文档字符串

三引号(可见即所得)

name03 = ‘’‘悟空’’’
name04 = “”“悟空”""

message = ‘我叫"齐天大圣".’
message = “我叫’齐天大圣’.”
message = “”“我叫’齐"天大"圣’.”""

转义字符

	1. 改变字符的原始含义。
					\’  \”  \”””  \n  \\  \t  \0 空字符  
	2. 原始字符串:取消转义。
					a = r”C:\newfile\test.py”
***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编程.")

字符串格式化

1. 定义:
			生成一定格式的字符串。
2. 语法:
			字符串%(变量)
			"我的名字是%s,年龄是%s" % (name, age)
3. 类型码:
			%s 字符串     %d整数     %f 浮点数

3. 字符串格式化

name = “qtx”
age = 18
score = 95.12345
print(“我的名字是%s,年龄是%d,成绩是%.3f” % (name, age, score))

通用操作

数学运算符

1. +:用于拼接两个容器
2. +=:用原容器与右侧容器拼接,并重新绑定变量
3. *:重复生成容器元素
4. *=:用原容器生成重复元素, 并重新绑定变量
5. < <= > >= == !=:依次比较两个容器中元素,一但不同则返回比较结果。 

算数运算符

– +容器元素拼接

name01 = “悟空”
name01 += “八戒”

*容器元素重复多次

name02 = “唐僧”
name02 *= 2
print(name02)

– == !

依次比较两个容器中元素,一但不同则返回比较结果。

print(“悟空” > “八戒”)

成员运算符

1. 语法:
 			数据 in 序列
			数据 not in 序列
2. 作用:
 	 如果在指定的序列中找到值,返回bool类型。

2. 成员运算 in not in

print(“我爱” in “我爱你”) # true
print(“爱我” in “我爱你”) # flase

message = “我是齐天大圣.”

标题

索引index

1. 作用:定位单个容器元素
2. 语法:容器[整数]
3. 说明:
			正向索引从0开始,第二个索引为1,最后一个为len(s)-1。
			反向索引从-1开始,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(s)。

3. 索引:定位单个元素

print(message[1])
print(message[-2])

索引越界

print(message[7])# 报错 IndexError

print(message[-8])# 报错 IndexError

切片slice

1. 作用:
			定位多个容器元素。
2. 语法:
			容器[(开始索引):(结束索引)(:(步长))]
3. 说明:
			小括号()括起的部分代表可省略
			结束索引不包含该位置元素
			步长是切片每次获取完当前元素后移动的偏移量

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]) # 获取空

列表:

定义

				由一系列变量组成的可变序列容器。

基础操作

	1. 创建列表: 
					列表名 = []   
					列表名 = list(可迭代对象)

1. 创建

– 直接存储数据

list01 = []
list01 = [“悟空”, “八戒”]

– 将其他可迭代对象存入列表

list02 = list(“我是齐天大圣”)

2. 添加元素:
					列表名.append(元素) 
					列表.insert(索引,元素)

2. 增加

– 追加(末尾)

list01.append(“唐僧”)

– 插入(在指定)

list01.insert(1, “沙僧”)

3. 定位元素:
					列表名[索引] = 元素
					变量 = 列表名[索引]
					变量 = 列表名[切片] # 赋值给变量的是切片所创建的新列表 
					列表名[切片] = 容器 # 右侧必须是可迭代对象,左侧切片没有创建新列表。遍历列表:
			正向:
					for 变量名 in 列表名:
					变量名就是元素
			反向:
					for 索引名 in range(len(列表名)-1,-1,-1):
					列表名[索引名]就是元素

3 查询

– 索引

print(list02[-1])

– 切片

原理:切片后返回新列表(拷贝)

print(list02[:])

– 循环

for item in list02:
print(item)

方法1:
需求倒序获取所有元素(不建议切片)
for item in list02[::-1]:
print(item)
方法2:
for index in range(len(list02)-1,-1,-1):
print(list02[index])

4. 删除元素:
					列表名.remove(元素) 
				del 列表名[索引或切片]

34 删除

– 根据元素

if “八戒2” in list01:
list01.remove(“八戒2”) # 备注:如果没有元素则报错

– 根据位置

del list01[1]

del list01[1:3]

练习1:

"""
    练习:
        获取一个任意数      123456
        输出每位相加和      1+2+3+4+5+6+.....
"""
number = input("输入任意数:")
# 1. 循环以前定义变量(存储累加和)
h = 0
for item in number:
    # 循环以内进行累加
    h += int(item)
# 循环以外获取
print(h)

练习2:

"""
    练习1:在终端中显示0 1 2
    练习2:在终端中显示6 7 8 9 10
    练习3:在终端中显示2 4 6 8
    练习4:在终端中显示9 8 7 6 5 4 3
    练习5:在终端中显示-1 -2 -3 -4 -5 -6
"""
# 练习1:在终端中显示0 1 2
for __ in range(3):
    print(__, end=" ")
print(" ")

# 练习2:在终端中显示6 7 8 9 10
for __ in range(6, 11):
    print(__, end=" ")
print(" ")

# 练习3:在终端中显示2 4 6 8
for __ in range(2, 9, 2):
    print(__, end=" ")
print(" ")

# 练习4:在终端中显示9 8 7 6 5 4 3
for __ in range(9, 2, -1):
    print(__, end=" ")
print(" ")

# 练习5:在终端中显示-1 -2 -3 -4 -5 -6
for __ in range(-1, -7, -1):
    print(__, end=" ")
print(" ")

练习3:

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

result = 0
for __ in range(3):
    number01 = random.randint(1, 10)
    number02 = random.randint(1, 10)
    print(str(number01) +"+"+ str(number02)+"=")
    number = int(input("输入两数相加的和:"))
    # if number == number01 + number02:
    #     result += 10
    # else:
    #     result -= 5
    result+=10 if number == number01 + number02 else -5
print("最后得分为:"+str(result))

练习4:

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

result = 0
for __ in range(3):
    number01 = random.randint(1, 10)
    number02 = random.randint(1, 10)
    print(str(number01) +"+"+ str(number02)+"=")
    number = int(input("输入两数相加的和:"))
    # if number == number01 + number02:
    #     result += 10
    # else:
    #     result -= 5
    result+=10 if number == number01 + number02 else -5
print("最后得分为:"+str(result))

练习5:

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

# 练习2: 在终端中循环录入编码值,打印每个文字,
#         要求:如果录入空字符串,则程序退出。
while True:
    value = input("请输入编码值:")
    if value == "":
        break
    print(chr(int(value)))

练习6:

# ?天?小时?分钟
minute = 1
hour = 2
day = 3
print("%d天%d小时%d分钟" % (day, hour, minute))

# ?斤零?两
aunit = 1
tael = 2
print("%d斤零%d两" % (aunit, tael))


# ?+?=?
number01 = 1
number02 = 2
print("%d+%d=%d" % (number01, number02,number01+number02))

练习7:

"""
    练习:
        “我是明教教主张无忌”
        -- 打印第一个字符
        -- 打印最后一个字符
        -- 打印中间的字符
        -- 打印前三个字符
        -- 打印后四个字符(正向)
        -- 打印:是教主无
        -- 倒序打印所有字符
        -- 尝试...
"""

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])

练习 8:

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

# 2. 在第一个位置插入 "水星"
list01.insert(0, "水星")
print(list01)

# 3. 在末尾追加"海王星"
list01.append("海王星")
print(list01)

# 4. 打印从太阳到地球之间的行星(前两个行星)
print(list01[:2])

# 5. 打印地球以后的行星(一行一个)
# for item in list01[3:]: # 拷贝了新列表
#     print(item)
for i in range(3,len(list01)):
    print(list01[i])

# 6. 倒序打印所有行星
for index in range(len(list01)-1,-1,-1):
    print(list01[index])

语句小结:

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

    range 属于可迭代对象,所以获取数据使用for.

看教程

			网站:  www.runoob.com
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值