您现在的位置是:首页 > 文章详情

Python基础——while、字符串、列表及操作

日期:2018-05-25点击:482

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 
img_58398e4a5664feab227c20e225cb7e63.png
image.png

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) 
img_35912ddfcbf79687e693039353ab79b7.png
image.png

(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) 
img_d5d53edd3592844ba97490ae2a580651.png
image.png

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() 
img_bf6f679ea1f1c126bdb409d050584bf8.png
image.png

(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() 
img_18d9f274e9639d7c9ddc765eb6e36395.png
image.png

(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 
img_7adc7fca5f6e7a6bb0c24e09f46eb64a.png
image.png

二.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 
img_4a5c0887993087fc284c1f6cde9feb51.png
image.png

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 
img_9cc598b807e9f8846169f83b273092df.png
image.png

二. 字符串
1.字符串,就是文本,就是由多个字符组成的数据类型
定义字符串:
Str = “hello,python”
字符串就是用来显示给用户看的数据,不需要进行复杂的数学运算(+,-,*,/),但是允许字符串进行加法运算,表示拼接。
字符串拼接演示演示:

# 字符串拼接 my_str1 = "hello" my_str2 = "python" my_str3 = my_str1 + "\t" + my_str2 print(my_str3) 
img_50025b48baae0e7491c74255d6689115.png
image.png

字符串也可以和整数进行乘法运算,表示重复字符串多遍
演示:

#字符串和整数相乘 my_str1 = "hello,python \t" print( my_str1*5 ) 
img_4f6018701157476cc946489478d13175.png
image.png

在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) 
img_3c712933794e92b948661d1bf7176fee.png
image.png

由于三个引号已经被多行注释使用,因此定义字符串时,一般不使用三个引号

2.字符串的相关操作
问题:什么时候使用单引号定义字符串,什么时候使用双引号定义字符串?
回答:如果字符串的内容出现英文的单引号时,使用双引号定义字符串,如果字 符串内容出现英文双引号时,使用单引号定义字符串。
代码演示:

# 如果定义字符串的内容中含有英文单引号,则使用双引号进行定义 my_str1 = "I'm from China" print(my_str1) # 如果定义字符串的内容中含有英文双引号,则使用单引号进行定义 my_str2 = 'He said:"I am form England"' print(my_str2) 
img_21553d4c3e8362483b7f639a454cd408.png
image.png

字符串中,会有一些特殊用途的字符:

  1. 占位符:%
  2. 转义字符:在字符串左边带着反斜杠的,\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) 
img_4f48c66913d91b5926fc298d2194b297.png
image.png

\’和 \”,因为引号本身在字符串中表示字符的开始和结束,那么\’和\”表示,只是输出一个文本的引号。
演示:

# \' 和 \" my_str1 = 'I\'m from China' print(my_str1) my_str2 = "He said :\" hello,python\"" print(my_str2) 
img_530705c4ccbd2f79582adae08feab120.png
image.png

三. 列表
Python中除了支持数字类型(整数,浮点数,布尔值)以外,还有非数字型(字符串、列表、元组、字典)
非数字类型,在开发中也叫“高级变量类型”
1.列表(list):是一个由多个成员构成的数据类型
如果我们希望保存一个班级同学的姓名:

#需求保存一个班级同学的姓名: al_class_student_name = ["小明", "小黑", "小白", "小红"] print(al_class_student_name) print(type(al_class_student_name)) 
img_f30564da9a9aa254a00e99cb72c8c087.png
image.png

列表中的数据,可以是字符串,也可以是数字等其他的数据类型

  1. 列表的下标
    列表的下标指挥从0开始逐个递增
#列表的下标 my_list = ["a", "b", "c", "d", "e"] print(my_list[2]) 
img_f4d72420c80055d9bb69e135ee55f66b.png
image.png

列表的下标除了可以使用正数以外,还可以使用负数,
正数下标从0开始,从左往右排列
负数下标从-1开始,从右往左排列

#提取列表中倒数第一个数据 my_list =["a", "b", "c", "d", "e", "f"] print(my_list[-1]) 
img_17de6ebc62316d83b600a18b7e53e830.png
image.png

列表中虽然可以放不同数据类型的成员,但是一般在开发过程中,我们通常把同一种数据类型的数据,放在同一个列表中,也就是说列表中的数据,要么都是字符串,要么都是数字,原因主要是,列表往往和循环一起出现,使用循环对列表进行统一的操作。

注意:其实,除了列表有下标以外,其他的非数字类型的数据都会有下表,比如字符串。

四. 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) 
img_fd8f961b1203deb8210329694bf40df8.png
image.png

遍历:从第一个到最后一个,每一个都进行操作、查看。
循环:就是重复执行

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="") 
img_2404e776fa08d27fec1b8ed0a7e1dc5b.png
image.png
  1. for语句也可以有else语句
    演示:
# for循环中的else用法: my_list1 = ["小明", "小黑", "小白", "小红", "小蓝", "小灰", "小小黑"] for name in my_list1: if name == "小黑" : print("找到你了,小黑") break else: print("没找到你") # for后面else语句中的代码会在执行所有循环后,才会执行, # 遇到break,else就不会执行了 
img_faec44a83e06d51c589696018d10b951.png
image.png

五. 列表的更多操作
(1) 列表也支持加法运算和乘法运算
两个列表进行加法运算,表示拼接两个列表
列表和整数可以进行乘法运算,表示重复当前列表中的成员指定次数遍
代码演示:

#列表的加法运算,两个列表相加表示两个列表的拼接 list1 = [1,2,3] list2 = ["a", "b", "c"] list3 = list1 + list2 print(list3) #列表的乘法运算,列表和整数相乘,表示按指定次数重复当前列表的成员 list4 = list1 * 4 print(list4) 
img_9ac0beac2c7cf595258a2b6d41fff512.png
image.png

(2) in 判断一个成员是否在列表中
in 是一个运算符,其结果只会是True和False。
代码演示:

# in 来判断成员是否在列表中 my_list = ["a", "b", "c", "d"] print("a" in my_list) 
img_0df1834613b1534dabf2511c148825e5.png
image.png

True即表示该成员在列表中
(3) not in 判断一个成员是否不在列表中
代码演示:

# not in 判断一个成员是否不在这个列表中 my_list = ["a", "b", "c", "d"] print("a" not in my_list) 
img_84a2078ad970f5655240bec1bb3f9bc7.png
image.png

在开发过程中,一般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) 
img_40b6a4db8321a0d266f45e712a9774d0.png
image.png

(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) 
img_576535129f4a226029b08a334e5aff1f.png
image.png

个人独立博客: www.limiao.tech


原文链接:https://yq.aliyun.com/articles/651685
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章