本次内容:循环+字符串
#!/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")
#!/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 重新设置循环变量的值,使用方式十分灵活
#!/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循环和while循环的最大区别,就是while循环不需要知道循环的次数,给一个条件去做就行了,for循环需要有一个范围,使用到了range()函数。
#!/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)
#!/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("完成循环")
# 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])
#!/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
这没有什么好赘述的,记得有这个东西,想起来用即可。
给出案例比较实在。
'''常用的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
'''字符串的切片'''
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
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())
s1 = "_"
s2 = ""
seq = ("A", "B", "C", "D") # 字符串序列 - 元组
print(s1.join(seq)) # A_B_C_D
print(s1.join(s2)) # 空
'''
ljust(width, fillchar)
width:指定字符串的长度
fillchar:填充字符,默认为空格
返回一个源字符串左对齐,并使用空格填充至指定长度的新字符串
如果指定长度小于原字符串的长度,则返回原字符串
'''
message = "Today is Monday"
print(message.ljust(30, '!'))
# lstrip用于截掉字符串左边的空白字符串或者指定字符串,rstrip同理
str1 = " this is a string example."
print(str1.lstrip())
# replace:把字符串中的old字符替换成新字符,
# 如果指定第三个参数max,说明替换的次数不超过max
str1 = "北平是首都,首都是北平,北平在中国"
print(str1.replace('平', '京', 2)) # 只会替换前两个平
# 字符串的切片方法,split()通过指定分隔符对字符串进行切片,
#如果第二个参数num有指定值,则分割为num+1个字符串
# str.split(str = "",num = str.count(str))
# str:分隔符 num:分割次数, 默认为-1,分割所有
message = "床前明月光,疑是地上霜,举头望明月,低头思故乡"
print(message.split(",")) # 返回一个list类型 ['床前明月光,疑是地上霜,举头望明月,低头思故乡']
print(message.split(",", 2)) # 分割num+1次
print(message.replace(',', '\n')) # 将逗号替换成换行符
内容过于繁多,课堂练习分开写吧,刚好当做练习了。
课堂练习:
课堂小作业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 序列:
循环体
*
***
*****
*******
>> 课堂练习答案 <<
如果这篇文章对你有帮助,点赞评论一下呗,持续更新。。。