Python中循环及字符串
2021/4/11 20:25:22
本文主要是介绍Python中循环及字符串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python的循环加强练习
周末休息所以这次更新的晚了两天,不过没关系,还没有学习新的内容,这次刚好作为复习整理出来。
>> 第一天Day01 <<
>> 第二天Day02 <<
一、 while循环
- while循环的几种写法
先来一个简单的求1-100和的while普通写法
#!/usr/bin/python # _*_coding:utf-8_*_ # 开发人员:zys # 开发时间:2021/4/8 8:07 # 文件名称:01-while.PY # 开发工具:PyCharm # 求1+2+3+...+100的和 sum = 0 n = 100 counter = 1 while counter <= n: sum += counter counter += 1 print("1-%d的和为:%d" % (n, sum)) # 也可以将条件写在while后面 # 与while同级的else表示while结束要做的事情 count = 0 while count < 5: print(count, "小于5") count += 1 else: print(count, "大于或等于5") # 如果while循环体内只有一条语句,可以将该语句与while写在同一行中 flag = 1 while flag: print("welcome to China") print("Bye")
- while-else 结构
这种写法是C++和Java中没有见过的写法
#!/usr/bin/python # _*_coding:utf-8_*_ # 开发人员:zys # 开发时间:2021/4/8 8:20 # 文件名称:02-while.PY # 开发工具:PyCharm i = 0 j = 0 while i < 10: # 外循环 i += 1 print("这是外循环", i) while j < 5: # 内循环 j += 1 print("这是内循环", end=' ') else: # 当内循环不进行时,进行else,将j置为0 j = 0
如上述代码段,while-else中可以使用else 重新设置循环变量的值,使用方式十分灵活
- break: 直接跳出循环
continue: 跳过本次循环中剩余的内容
break和continue大家应该十分熟悉,C++编程中经常会用到
下面给出一个简单的案例:
#!/usr/bin/python # _*_coding:utf-8_*_ # 开发人员:zys # 开发时间:2021/4/8 9:40 # 文件名称:03-while.PY # 开发工具:PyCharm # continue 和 break的效果 # break: 跳出本次循环,结束循环 i = 0 while i < 4: i += 1 print("外循环") j = 0 while j < 3: j += 1 print("内循环") if j == 2: print("跳出循环") break # 跳出当前循环,和外循环无关 # break仅能跳出一次循环 # continue: 跳过本次循环,进入下一次循环 count = 0 while count < 10: count += 1 if count == 4: continue print(count) #这里count = 4的结果将不会打印出来
二、for循环
for循环和while循环的最大区别,就是while循环不需要知道循环的次数,给一个条件去做就行了,for循环需要有一个范围,使用到了range()函数。
- for循环的基本使用
for循环可以在字符串内循环,也可以在列表和元组中循环
#!/usr/bin/python # _*_coding:utf-8_*_ # 开发人员:zys # 开发时间:2021/4/8 9:51 # 文件名称:05-for.PY # 开发工具:PyCharm # message = "今天风和日丽,适合出去踏青" # message = [1, 2, 3, 4, 5, 6] message = (1, 2, 3, 4, 5, 6) for me in message: print(me)
range()函数: range(start, end, scan) start: 开始位置 end: 结束位置 scan: 每次递增的间距 range有三种输入参数的情况: 1、range(end):只有一个参数,会默认从0-end,每次递增/减1个 2、range(start,end):有两个参数,从[ start-end )循环,每次递增/减1个 3、range(start,end,scan):三个三处,从[ start-end )循环,每次递增/减scan个
# 使用range()序列函数进行计数 # for i in range(10): for i in range(1, 10, 2): print(i)
- 下面给出一个例子,for-else+range+break的小练习,不难理解,运行一下即可知道结果
#!/usr/bin/python # _*_coding:utf-8_*_ # 开发人员:zys # 开发时间:2021/4/8 10:00 # 文件名称:06-for.PY # 开发工具:PyCharm sites = ["Baidu", "google", "Yahoo", "Taobao"] for site in sites: if site == "Yahoo": print("雅虎") break print("循环内容:"+site) else: print("没有完成循环数据") print("完成循环")
- 除了上面的使用,range函数还可以循环负数。range还可以通过len()函数获取列表的长度,使用下标对列表进行循环。
# for使用range循环负数 for i in range(-10, -100, -30): print(i)
# 使用len()获取list的长度 # 再使用for和range函数遍历list的所有元素 a = ['google', 'baidu', 'taobao', 'qq'] for i in range(len(a)): print(i, a[i])
- 来一个经典的算法问题:求1-100的素数(质数),定义就不说了直接上代码:
说明一下:这里没有优化算法,使用sqrt需要导包,可以使用偶数进行优化
#!/usr/bin/python # _*_coding:utf-8_*_ # 开发人员:zys # 开发时间:2021/4/8 10:26 # 文件名称:08-for.PY # 开发工具:PyCharm import math for i in range(2, 100): flag = 1 # 判断是否被整除的标记 for j in range(2, i): if i % j == 0: flag = 0 # 如果被整除了,修改flag if flag == 1: print(i, end=' ')
三、变量生存时间
生存时间,有点像计算机网络中报文段的ttl,个人感觉有点类似。
# 数据类型是不允许改变的,这就意外着如果改变数字数据结构类型, # 将重新分配内存空间 num = 0xA0F num = 0o37 print(num) # 此时输出 num = 0o37 数据 del num # 删除变量 print(num) # 没有信息 a = 1 b = 2 c = 3 del a, b, c
四、math包中常用内置函数
这没有什么好赘述的,记得有这个东西,想起来用即可。
给出案例比较实在。
'''常用的Number中的内置函数''' import math # 返回一个数字的绝对值 print(abs(-10)) # 返回数字的上入整数(上取整) 4.5 4.1 4.9 print(math.ceil(4.000000000000001)) # 打印 5 # print(math.ceil(4.0000000000000001)) # 打印 4 # 返回数字的上入整数(下取整) print(math.floor(4.999999999999999)) # 打印 4 # print(math.floor(4.9999999999999999)) # 打印 5 '''上文中测试了一下float类型的有效位数,挺长的。。''' # fabs():返回数字的绝对值 ''' fabs方法返回数字的绝对值,类似于abs() 二者区别在于: abs()是内置函数,fabs()在math中定义 fabs()函数支队浮点型和整数类型有效,abs()还可以用在负数中。 ''' print(math.fabs(-10)) # 返回最大值 参数必须为一个序列 print(max(41, 31, 15, 61, 33, 333, 7, 777)) # 返回最小值 参数必须为一个序列 print(min(41, 31, 15, 61, 33, 333, 7, 777)) # 返回浮点数的四舍五入值,给一个参数,该参数表示四舍五入到小数点后面的位数 print(round(3.1415925, 3)) # 两种次幂的运算,pow需要导入包 print(5**2) # 5^2 print(pow(5, 3)) # 5^3 # 返回数字的平方根 print(math.sqrt(15))
四、字符串操作
- 字符串的+= 和 *=
str1 = 'hello' str2 = "world" str3 = '''亚洲''' str4 = """中国""" str1 += str2 print(str1) # 打印helloworld str2 *= 2 print(str2) # 打印worldworld
- 字符串的切片
参数和range函数的参数有些类似,如下:
'''字符串的切片''' school = "江苏师范大学智慧教育学院软件工程专业" print(school[1:5]) # 1-5位 print(school[:6]) # 前6位 print(school[1:]) # 2-最后位 print(school[len(school)-3:]) # 后3位 print(school[-6:]) # 后6位 str1 = "0123456789" print(str1[2:5:1]) # 从2-5,每次递增1 234 print(str1[2:5:3]) # 从2-5,每次递增3 2 print(str1[-4:-1:1]) # 从[-4,-1],每次递增1 678
- 字符串下标表示和 操作符 in 的使用
- 字符串可以使用下标表示
- in操作符:判断元素是否在列表/元组/字典中
str1 = "我爱大学生活" for i in str1: print(i) for i in range(len(str1)): print(str1[i]) if '大学' in str1: print("刚才在聊大学生活") else: print("刚才在瞎扯")
- 字符串常用函数(代码巨多预警!!)
排版不好内容比较多,强烈建议慢慢看
'''字符串中的第一个字符转换为大写capitalize()''' str1 = 'hello' message = str1.capitalize() print(message)
'''返回一个指定宽度居中的字符串center(),并且可以填充字符,默认填充为空格''' message = "world" print(message.center(40, '*')) # '*'为填充字符
''' count(sub,start,end):用于统计字符串里某个字符出现的次数 sub: 搜索的子字符串 start: 开始搜索的位置,默认为0 end: 结束搜索的位置,默认为最后 ''' str1 = "www.taobao.com" sub = "o" print(str1.count(sub)) sub = "a" print(str1.count(sub, 0, 10))
# 编码 code str1 = "我爱中国" str1_utf8 = str1.encode("UTF-8") str1_gbk = str1.encode("GBK") print(str1_utf8) print(str1_gbk) # 解码 decode print(str1_utf8.decode("utf-8", 'strict')) print(str1_gbk.decode("GBK", 'strict')) ''' decode()方法是以指定的编码格式去解码bytes对象,默认编码为utf-8 encoding:要使用的编码 errors:设置不同的错误处理方案 '''
''' endswith()检查是否以某字符串结尾 startswith()检查是否以某字符串开头 ''' message = "春花秋月何时了,往事知多少?小楼昨夜又东风,故国不堪回首明月中。" # 检查5-20字符串是否以“往事”开头 flag = message.startswith("往事", 5, 20) print(flag) # False
'''字符串查找方法: find()方法检测字符串中似乎包含字符串str,如果存在,则返回下标 index()方法同find() 区别在于,index找不到会报异常,find找不到返回-1 ''' message = "春花秋月何时了,往事知多少?小楼昨夜又东风,故国不堪回首明月中。" flag = message.find("小楼", 6, 25) flag = message.index("大楼") print(flag)
# isalnum()检测字符串是否由字母和数字组成 # 如果该字符中,所有字符都是字母或者数字则返回True str1 = '''jsnu2021''' print(str1.isalnum()) # 如果字符串中至少有一个字符,并且所有的字符都是字母或者中文则返回True str1 = 'goto世界' print(str1.isalpha()) # isdigit() 判断字符串是否都是字符串组成 str2 = "13814970381" print(str2.isdigit()) # isspace() 检测字符串中是否由空格组成 str3 = " " print(str3.isspace()) # isupper() 判断是否全部为大写 # islower() 判断是否全部为小写 # lower() 转换为小写 # upper() 转换为大写 str4 = "helloWorld" print(str4.isupper()) print(str4.upper()) print(str4.lower()) print(str4.upper()) ''' 字符串CRUD操作: join()连接 find()查找 delete()删除 replace()替换 '''
内容过于繁多,课堂作业再写一篇吧,刚好当做练习了。
课堂作业:
课堂小作业1-Star: 通过while循环嵌套 实现如下图形 ****...*** * * * * * * ****...*** 课堂小作业2-直角三角形: * ** *** **** ***** ****** ******* ******** ********* 课堂小作业3-九九乘法表(作业2改:) 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 for循环变量 in 序列: 循环体 * *** ***** *******
>> 课堂练习答案 <<
如果这篇文章对你有帮助,点赞评论一下呗,持续更新。。。
这篇关于Python中循环及字符串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程
- 2024-12-18Python量化入门教程:轻松掌握量化交易基础知识