Python基础——while、字符串、列表及操作
Python基础——day3
一. While循环
while和if的用法基本类似,区别在于,if条件成立,则执行一次;while条件成立则重复执行,直到条件不成立。
一般情况下需要重复执行的代码都可以用循环方式实现
1.while循环的格式:
while条件:
条件满足时,执行事件1
条件满足时,执行事件2
条件满足时,执行事件3
代码演示:
# while循环格式演示
a = 1
while a <= 5:
print(a)
print("这是第%d次打印" % a)
a += 1
2.while循环的应用
(1) 计算1-100的累计和
代码演示:
#需求:计算1-100的累计和
num = 1
num_sum = 0
while num <= 100:
num_sum = num_sum +num
num += 1
print(num_sum)
(2) 计算1-100的偶数和
代码演示:
#需求:计算1-100的偶数和
#分析:偶数,即整数除以2,得到的结果没有余数,即余数为0
num = 1
num_sum = 0
while num <= 100:
if num % 2 == 0:
num_sum = num_sum + num
num += 1
print(num_sum)
3.while循环嵌套
类似于if嵌套,while嵌套就是while循环里还有while循环
While循环嵌套格式:
while条件1:
条件1满足时,执行事件1
条件1满足时,执行事件2
条件1满足时,执行事件3
...
while条件2:
条件2满足时,执行事件1
条件2满足时,执行事件2
条件2满足时,执行事件3
...
(1) while循环嵌套应用
打印如下格式图形:
*
**
***
****
代码演示:
需求:打印如下格式图形
*
**
***
****
a = 1
while a <= 4:
b =1
while b <= a:
print("*", end="") #因为print()打印时,有自动换行的特性,因此使用end=""来结束其换行
b += 1
a += 1
print()
(2) while循环制作九九乘法表
代码演示:
#需求,用while循环打印就就乘法表
a = 1
while a <= 9:
b = 1
while b <= a:
print("%d*%d=%d\t" % (b, a ,a*b),end="")
b += 1
a += 1
print()
(3) while循环打印倒九九乘法表
代码演示:
i = 9
while i>=1:
j = 1
while j<=i:
print("%d*%d=%d\t"%(j,i,j*i),end="")
j+=1
print("\n")
i-=1
二.break 和 continue
break和continue 是两个只能在循环语句中使用到的关键词,有特殊作用。
在循环中,遇到continue会跳过当前一次循环,跳到下一次循环的条件判断中
在循环中,遇到break会直接终止当前循环,执行其他后续的代码
代码演示:
1.(面试题)使用循环生成1,2,3,4,5,7,9,10数字
# #需求:使用循环生成1,2,3,4,5,7,9,10
my_num = 1
while my_num <= 10:
if my_num == 6 or my_num == 8:
my_num += 1 #注意,使用continue的时候,要注意改变变量,否则构成死循环
continue #循环遇到continue之后,会直接跳到下一次循环的条件判断中
print( my_num )
my_num += 1
2.修改上述需求,使用循环生成1-10数字,但是当数字是6时,结束循环
#修改需求:使用循环生成1-10数字,但是当数字是6时,结束循环
my_num = 1
while my_num <= 10:
if my_num == 6:
break #循环中遇到break,会终止循环,执行循环以后的代码
print(my_num)
my_num += 1
二. 字符串
1.字符串,就是文本,就是由多个字符组成的数据类型
定义字符串:
Str = “hello,python”
字符串就是用来显示给用户看的数据,不需要进行复杂的数学运算(+,-,*,/),但是允许字符串进行加法运算,表示拼接。
字符串拼接演示演示:
# 字符串拼接
my_str1 = "hello"
my_str2 = "python"
my_str3 = my_str1 + "\t" + my_str2
print(my_str3)
字符串也可以和整数进行乘法运算,表示重复字符串多遍
演示:
#字符串和整数相乘
my_str1 = "hello,python \t"
print( my_str1*5 )
在python中,字符串一共有四种定义方法:
(1) 使用单引号定义:
(2) 使用双引号定义:
(3) 使用三个单引号定义:
(4) 使用三个双引号定义:
# python中定义字符串的四种方法:
# 1.使用单引号定义
str1 = 'Hello,Python'
print(str1)
# 2.使用双引号定义
str2 = "Hello,World"
print(str2)
# 3.使用三个单引号定义
str3 = '''Hello,China'''
print(str3)
# 4.使用三个双引号定义
str4 = """Hello,Deutchland"""
print(str4)
由于三个引号已经被多行注释使用,因此定义字符串时,一般不使用三个引号
2.字符串的相关操作
问题:什么时候使用单引号定义字符串,什么时候使用双引号定义字符串?
回答:如果字符串的内容出现英文的单引号时,使用双引号定义字符串,如果字 符串内容出现英文双引号时,使用单引号定义字符串。
代码演示:
# 如果定义字符串的内容中含有英文单引号,则使用双引号进行定义
my_str1 = "I'm from China"
print(my_str1)
# 如果定义字符串的内容中含有英文双引号,则使用单引号进行定义
my_str2 = 'He said:"I am form England"'
print(my_str2)
字符串中,会有一些特殊用途的字符:
- 占位符:%
- 转义字符:在字符串左边带着反斜杠的,\n表示换行,\t表示缩进一个tab
演示:
# 占位符
my_str1 = 5
print("小红上街买了%d个苹果" % my_str1)
#转义字符:\t \n
my_str2 = "hello\npython"
print(my_str2)
my_str3 = "hello\tpython"
print(my_str3)
\’和 \”,因为引号本身在字符串中表示字符的开始和结束,那么\’和\”表示,只是输出一个文本的引号。
演示:
# \' 和 \"
my_str1 = 'I\'m from China'
print(my_str1)
my_str2 = "He said :\" hello,python\""
print(my_str2)
三. 列表
Python中除了支持数字类型(整数,浮点数,布尔值)以外,还有非数字型(字符串、列表、元组、字典)
非数字类型,在开发中也叫“高级变量类型”
1.列表(list):是一个由多个成员构成的数据类型
如果我们希望保存一个班级同学的姓名:
#需求保存一个班级同学的姓名:
al_class_student_name = ["小明", "小黑", "小白", "小红"]
print(al_class_student_name)
print(type(al_class_student_name))
列表中的数据,可以是字符串,也可以是数字等其他的数据类型
- 列表的下标
列表的下标指挥从0开始逐个递增
#列表的下标
my_list = ["a", "b", "c", "d", "e"]
print(my_list[2])
列表的下标除了可以使用正数以外,还可以使用负数,
正数下标从0开始,从左往右排列
负数下标从-1开始,从右往左排列
#提取列表中倒数第一个数据
my_list =["a", "b", "c", "d", "e", "f"]
print(my_list[-1])
列表中虽然可以放不同数据类型的成员,但是一般在开发过程中,我们通常把同一种数据类型的数据,放在同一个列表中,也就是说列表中的数据,要么都是字符串,要么都是数字,原因主要是,列表往往和循环一起出现,使用循环对列表进行统一的操作。
注意:其实,除了列表有下标以外,其他的非数字类型的数据都会有下表,比如字符串。
四. for循环
1.for循环一般就是用来完成提取列表和字符串、元组的所有成员
for类似while,也是一种循环
演示:
class_student_list = ["小白", "小黑", "小灰", "小红", "小蓝"]
# 需求:希望把所有学生姓名全部输出出来
# 如果不使用循环来输出则如下:
print(class_student_list[0])
print(class_student_list[1])
print(class_student_list[2])
print(class_student_list[3])
print(class_student_list[4])
print()
#先使用while来完成:
a = 1
while a <= 4:
print(class_student_list[a])
a += 1
print()
#使用for循环实现:
for name in class_student_list:
print(name)
遍历:从第一个到最后一个,每一个都进行操作、查看。
循环:就是重复执行
2.for循环生成数字
需求:生成1-10之间的整数
代码演示:
# 需求:生成1-10之间的整数
# 先使用while循环实现:
a = 1
while a <= 10:
print(a, end="") #使用end="",让print()打印不换行
a += 1
print()
# 使用for循环实现:
# range(开始位置,结束位置) 可以生成指定范围的整数[不包含结束位置]
for i in range(1,11):
print(i, end="")
- for语句也可以有else语句
演示:
# for循环中的else用法:
my_list1 = ["小明", "小黑", "小白", "小红", "小蓝", "小灰", "小小黑"]
for name in my_list1:
if name == "小黑" :
print("找到你了,小黑")
break
else:
print("没找到你") # for后面else语句中的代码会在执行所有循环后,才会执行,
# 遇到break,else就不会执行了
五. 列表的更多操作
(1) 列表也支持加法运算和乘法运算
两个列表进行加法运算,表示拼接两个列表
列表和整数可以进行乘法运算,表示重复当前列表中的成员指定次数遍
代码演示:
#列表的加法运算,两个列表相加表示两个列表的拼接
list1 = [1,2,3]
list2 = ["a", "b", "c"]
list3 = list1 + list2
print(list3)
#列表的乘法运算,列表和整数相乘,表示按指定次数重复当前列表的成员
list4 = list1 * 4
print(list4)
(2) in 判断一个成员是否在列表中
in 是一个运算符,其结果只会是True和False。
代码演示:
# in 来判断成员是否在列表中
my_list = ["a", "b", "c", "d"]
print("a" in my_list)
True即表示该成员在列表中
(3) not in 判断一个成员是否不在列表中
代码演示:
# not in 判断一个成员是否不在这个列表中
my_list = ["a", "b", "c", "d"]
print("a" not in my_list)
在开发过程中,一般in 是用在if条件中:
代码演示:
# in 在开发中一般和if判断连用
my_list = ["a", "b", "c", "d"]
my_name = "a"
if my_name in my_list:
print("%s在列表中" % my_name)
else:
print("%s不在列表中" % my_name)
(4) 列表的增、删、改、查
在开发中,列表中存放的成员就是数据,那么我们可以对列表里面的成员进行,增加、删除、修改、查看
常规操作:增、删、改、查、排序
代码演示:
# 列表增加成员
# 1.在列表末尾追加成员
# 列表.append(数据)
my_list1 = ["a", "b", "c", "d"]
my_list1.append("e")
print(my_list1)
# 2.insert 指定下标左边位置插入数据
# 列表.insert(下标, 数据)
my_list2 = ["az", "bz", "cz", "dz"]
my_list2.insert(2, "fz")
print(my_list2)
# 在列表操作中,insert的下标如果不存在,则表示追加
# 3. extend 合并一个新的列表
my_list3 = ["ax", "bx", "cx", "dx"]
my_list4 = ["ex", "fx", "gx"]
my_list3.extend(my_list4)
print(my_list3)
# 列表删除成员操作
# 1.使用del通过指定下标可以删除成员
my_list5 = ["aa", "bb", "cc", "dd"]
del my_list5[-1]
print(my_list5)
# 2.使用remove删除成员
# 列表.remove(要删除的数据)
# 使用remove删除数据时,如果数据不存在会报错
my_list6 = ["aaa", "bbb", "ccc"]
my_list6.remove("aaa")
print(my_list6)
# 3.使用pop删除最后一个成员,也可以删除指定下标对应的数据
# 设置的下标必须存在,否则报错
my_list7 = ["aaaa","bbbb", "cccc", "dddd"]
my_list7.pop(-1)
print(my_list7)
# 4.清空列表
# 列表.clear()
my_list8 = ["q", "w", "e", "r"]
my_list8.clear()
print(my_list8)
# 列表修改成员的值
# 直接通过下标进行值的修改,如果下标不存在,则直接报错
my_list9 = ["t", "y", "u", "i"]
my_list9[-1] = "o"
print(my_list9)
# 列表查找成员
# 1.直接通过下标index查找成员,如果下标不存在,则报错
my_list10 = ["1", "2", "3", "4"]
print(my_list10[3])
# 2.通过值来查找成员下标,如果不存在,则报错
my_list11 = ["11", "22", "33", "44"]
res1 = my_list11.index("11")
print(res1)
# 3.在指定下标范围内查找数据,找不到则报错
my_list12 = ["z", "x", "c", "v"]
res2 = my_list12.index("x", 0, 2) #查找的时候不包含结束位置
print(res2)
# 4.count 统计成员在列表中出现的次数,如果没有,则为0次
my_list13 = ["a", "s", "d", "a", "a", "f"]
res3 = my_list13.count("a")
print(res3)
# 5.len 统计列表成员的个数
my_list14 = ["qq", "ww", "ee", "rr"]
res4 = len(my_list14)
print(res4)
# 列表排序
# 让列表中的成员进行升序排序
my_list15 = [8, 2, 6, 7, 3, 1]
my_list15.sort()
print(my_list15)
# 可以通过key=str,来设置排序的时候,全部当成字符串来进行排序
my_list16 = ["a", 2, "f", 8, "s", "p", 3]
my_list16.sort(key=str)
print(my_list16)
# 可以通过key=len,来设置排序的时候,通过字符串长短来排序
# sort()默认让列表成员进行升序排列,还可以设置降序
my_list17 = [6, 4, 8, 0, 3, 5]
my_list17.sort(reverse=True) #让列表中的成员降序排序
print(my_list17)
# reverse()可以将列表中成员进行逆序排列
my_list18 = ["小明", "小白", "小兰", "小黑"]
my_list18.reverse()
print(my_list18)
个人独立博客: www.limiao.tech