delphi怎么做网站,一建建设网站,工伤做实网站,公司做自己的网站平台台10.8 总结
作业回顾
1.1 索引练习节选
s hello 1 world 2 hello 3 Python
# 获取s的长度
print(len(s)) # 30
# 获取第4个字符
print(s[3]) # l
# 获取最后一个字符
print(s[-1]) # n
# 获取第7个字符
print(s[6]) # 1
# 获取倒数第7个字符
print(s[-7]) # 空格【不显…10.8 总结作业回顾1.1 索引练习节选shello 1 world 2 hello 3 Python# 获取s的长度print(len(s))# 30# 获取第4个字符print(s[3])# l# 获取最后一个字符print(s[-1])# n# 获取第7个字符print(s[6])# 1# 获取倒数第7个字符print(s[-7])# 空格【不显现】1.2 获取两个数的最小公倍数----做法1正常循环 aint(input(输入一个数))bint(input(输入第二个数))ifabanda%b0:print(a,是最小公倍数)elifbaandb%a0:print(b,是最小公倍数)else:# 简单循环找最小公倍数multiplemax(a,b)whileTrue:ifmultiple%a0andmultiple%b0:print(multiple,是最小公倍数)breakmultiple1----做法2封装函数defget_num(a,b):foriinrange(max(a,b),a*b1):ifi%a0andi%b0:returni# return作用1.结束函数 2.返回结果返回到调用位置。print(get_num(3,6))# 61.3 获取两个数的最大公因数--方法1# 从 2 开始找因为 1 通常都能整除aint(input(输入一个数))bint(input(输入第二个数))foriinrange(2,min(a,b)1):ifa%i0andb%i0:print(i,是最小公因数)breakelse:# 如果循环没有找到说明只有 1 是公因数print(1,是最小公因数)--方法2defget_num2(a,b):foriinrange(min(a,b),0,-1):ifa%i0andb%i0:returniprint(get_num2(3,6))# 31.4 键盘输入年月日计算是这一年中的第几天yearint(input(输入一个年份))monthint(input(输入一个年份))dayint(input(输入一个天数))total_day0foriinrange(1,month):ifiin(1,3,5,7,8,10,12):total_day31elifiin(4,6,9,11):total_day30else:ifyear%40andyear%100!0oryear%4000:total_day29else:total_day28print(total_dayday)calendar 模块有现成的判断闰年的方式importcalendarprint(calendar.isleap(2024))# True用模块做importcalendar yearint(input(输入一个年份))monthint(input(输入一个月份))dayint(input(输入一个天数))total_day0foriinrange(1,month):ifiin(1,3,5,7,8,10,12):total_day31elifiin(4,6,9,11):total_day30else:ifcalendar.isleap(year):total_day29else:total_day28print(total_dayday)考虑日期合不合法性# 考虑日期合不合法性# 键盘输入年月日计算是这一年中的第几天importcalendar yearint(input(输入一个年份))ifyearinrange(1900,2024):# 如果年份合法monthint(input(输入一个月份))if1month12:dayint(input(输入一个天数))ifmonthin(1,3,5,7,8,10,12):max_day31elifmonthin(4,6,9,11):max_day30else:ifcalendar.isleap(year):max_day29else:max_day28# 如果月份合法if1daymax_day:passelse:print(日期不合法)else:print(月份不合法)else:print(年份不合法)calendar.monthrange 能求某年某月天数importcalendar max_daycalendar.monthrange(2023,10)# 能求某年某月天数print(max_day)# (6, 31)# 31是天数# 6 是每月从0开始计10月1日是在第几号索引开始max_daycalendar.monthrange(2023,10)[-1]print(max_day)# 31# -1 是索引这里是元组有俩-1就是取最后面那个切片1.注意切片不包含结束位置2.索引获取一个切片获取一堆操作字符串[起始索引结束索引步长]特点不包含结束位置切片根据索引定位范围获取范围中的子串range(10,1)根据步长的正负性分两种abcdef正向切片 从左向右获取 步长为正 要求起始索引定位的字符 在 结束索引定位字符 的左边 负向切片 从右向左获取 步长为负 要求起始索引定位的字符 在 结束索引定位字符 的右边 有些内容可省略1.省略:步长--表示 字符串[起始索引结束索引]表示 步长为1从左向右逐个获取2.省略起始索引--表示 字符串[结束索引步长]如果步长为正 从左向右获取 表示从最左边开始 如果步长为负 从右向左获取 表示从最右边开始3.省略结束索引--表示 字符串[起始索引步长]如果步长为正 从左向右获取 到最右边结束 如果步长为负 从右向左获取 到最左边结束4.也可以同时省略多个 同时省略起始索引和步长 表示--字符串[结束索引]省略步长 表示步长为1字符串[结束索引1]5.可以省略所有 s123print(s[::])# 123成绩单 小红 正数第一名 倒数第四名 小亮 第二名 倒数第三名 小明 第三名 倒数第二名 小花 第四名 倒数第一名 获取第一名到第三名 小红 小亮 小明---正向切片 获取第三名到第一名 小明 小亮 小红---负向切片3.举例步长省略是可以取到的# 获取子串的 范围的定位通过索引定位的s床前明月光疑是地上霜# 索引 字符串[索引] 获取某个索引对应的字符print(s[0])# 床print(s[-1])# 霜print(s[4])# 光# 切片 字符串[起始索引结束索引步长] 不包含结束位置# 起始索引 结束索引 作用 为了圈定范围# 获取前4个字符s床前明月光疑是地上霜print(s[0:4:1])# 床前明月# 步长可以省略 表示步长为1print(s[0:4])# 床前明月# 获取 第三个字符 到第八个字符print(s[2:8:1])# 明月光疑是地print(s[2:8])# 明月光疑是地# 要求 起始索引定位的字符 在 结束索引 定位字符的左边# 不满足要求 取到的为空字符串values[6:1:1]print(value,type(value))# class str# 步长不为1print(s[2:8:2])# 起始索引 2 结束索引 8 步长 2# 负向切片 步长为负 从右向左获取s床前明月光疑是地上霜# 要求 起始索引定位的字符 在 结束索引定位字符的 右边# 从右向左获取 第8个字符 到 第3个字符print(s[7:1:-1])# 地是疑光月明# 从右向左获取 最后五个字符print(s[-1:-6:-1])# 霜上地是疑# 如果不满足要求values[-5:-3:-1]# 从 -5开始 到 -3结束 方向不对print(value,type(value))# 空字符串 class strprint(s[-1:-8:-2])# 从-1开始 到 -8结束 步长为-2 霜地疑月# 索引的作用 定位范围 使用正向和负向都可以 可以混合用sgjkdgafhjkaghjaksdghfjhaegfuj# 从左向右获取 s中从第2个 到 倒数第二个print(s[1:-1:1])# jkdgafhjkaghjaksdghfjhaegfu# 省略内容# 1. 省略步长sgjkdgafhjkaghjaksdghfjhaegfuj# 2. 省略起始索引# 2.1 步长为正 从左向右获取 从最左边开始# 从左向右获取前5个字符 仨结果一样print(s[0:5:1])# gjkdgprint(s[0:5])# gjkdgprint(s[:5])# gjkdg# 2.2 步长为负 从右向左获取 从最右边开始# 从右向左获取最后五个字符print(s[-1:-6:-1])# jufgeprint(s[-1:-6])# 空字符串什么都不显示print(s[:-6:-1])# jufgesgjkdgafhjkaghjaksdghfjhaegfuj# 3. 省略结束索引# 3.1 步长为正 从左向右获取 到最右边结束# 从左向右获取最后五个字符print(s[-5::1])# egfujprint(s[-5:])# egfuj 省略步长为1# 3.2 步长为负 从右向左获取 到最左边结束# 从右向左获取前五个字符print(s[4::-1])# gdkjg# 把s复制一份 完全一样 从最左边取到最右边 步长为 1print(s[0::1])# gjkdgafhjkaghjaksdghfjhaegfujprint(s[::1])# gjkdgafhjkaghjaksdghfjhaegfujprint(s[:])# gjkdgafhjkaghjaksdghfjhaegfuj # 复制sgjkdgafhjkaghjaksdghfjhaegfuj# 字符串的反转 将字符串倒叙写出 从最右边开始 到最左边结束 步长为-1print(s[-1::-1])print(s[::-1])# 反转4.反转操作 [::-1]可利用其让别的字符串反转s1asdhfdfabjbsdfjlabdfjdfldajkdgf# 从左向右获取前10个字符 -- 步长为正 步长为1print(s1[0:10:1])# asdhfdfabjprint(s1[0:10])# asdhfdfabjprint(s1[:10])# asdhfdfabj# 从右向左获取前10个字符 -- 步长为负 步长 -1print(s1[9::-1])# jbafdfhdsa# 另一种写法 从左向右获取前10个 --- 反转print(s1[:10][::-1])# jbafdfhdsa# 获取最后一个字符print(s1[-1])# fprint(s1[len(s1)-1])# f举例子 a1234print(len(a))# 4print(a[len(a)-1])# 4# 获取第5个字符print(s1[4])# fs1asdhfdfabjbsdfjlabdfjdfldajkdgf# 从左向右获取后10个字符 -- 步长为正 步长为1print(s1[-10::1])# dfldajkdgf 结束不能为-1因为最后一个数据会省略写0就错了print(s1[-10:])# dfldajkdgf举例子 a1234print(a[-4:-1:1])# 123print(a[-4::1])# 1234# 从右向左获取后10个字符 -- 步长为负 步长 -1 步长不可省略print(s1[-1:-11:-1])# fgdkjadlfdprint(s1[:-11:-1])# fgdkjadlfd# 获取第7-第15个字符 包含第15个print(s1[6:15:1])# fgdkjadlfdprint(s1[6:15])# fgdkjadlfd# 从左向右获取整个字符串中每隔一个取一个 步长为正 步长 是 2print(s1[0::2])# adffbbdjadjfdjdfprint(s1[::2])# adffbbdjadjfdjdf# 获取整个字符串中从后往左每隔一个取一个 步长为负 步长-2print(s1[::-2])# fdjdfjdajdbbffdaprint(s1[-1::-2])# fdjdfjdajdbbffda# 字符串的反转print(s1[::-1])# fgdkjadlfdjfdbaljfdsbjbafdfhdsa5.遍历字符串importstring# 所有的大写英文字母 结果是字符串print(string.ascii_uppercase)# ABCDEFGHIJKLMNOPQRSTUVWXYZ# 所有的小写英文字母print(string.ascii_lowercase)# abcdefghijklmnopqrstuvwxyz# 所有的英文字母 大小写都包括print(string.ascii_letters)# abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ# 获取所有的数字print(string.digits)# 0123456789直接遍历字符串importstring# 直接遍历字符串# s GJHGhdjh7824$%^*# # 获取s中大写英文字母的个数# c 0# for i in s: # 直接遍历字符串 遍历 i -- 表示的内容是什么 字符串中的每一个字符# # if AiZ: # 1. ascii码 十进制数据 2. 成员# if i in string.ascii_uppercase:# c 1# print(c)遍历索引 【应用场景条件或者结论中和索引相关】importstring# 2. 遍历索引 索引 从0开始 到 长度-1结束 产生 0 1 2 3 4.。。 len-1的数值 等差数列# 应用场景 条件或者结论和索引相关# 获取 大写英文字母对应的索引sGJHGhdjh7824$%^*foridxinrange(0,len(s)):# range(0,len(s)) 0 1 2 3 4 len-1# idx 0 1 2 3 4 表示的是 s中的每一个字符的索引值# 获取索引对应的字符 字符串[索引]ifs[idx]instring.ascii_uppercase:# 如果获取的索引对应的字母是大写字母print(idx)# 获取 索引能被3整除 或者 索引能被4整除 对应的字符foridxinrange(0,len(s)):# 条件 idxifidx%30oridx%40:# 输出的字符 idx 是索引print(s[idx])枚举遍历 【最好用的是第三种】importstring# 3. 枚举遍历# print(enumerate(s))foriinenumerate(s):print(i)# i 是一个元组 元组中有两个内容 第一个内容 就是索引 第二个内容 索引对应的字符# 枚举遍历的方式 可以同时获取 索引 和 对应的字符forpos,eleinenumerate(s):print(pos,ele)# pos -- 索引 ele -- 对应的字符# 获取大写英文字母对应的索引forpos,eleinenumerate(s):# pos 索引 ele 字符ifeleinstring.ascii_uppercase:print(pos)forpos,eleinenumerate(s):ifpos%30orpos%40:print(ele)6.练习注意1.使用字符串需要导包importstring# 提供了一系列与字符串操作相关的常量和方法。2.有的判断要加符号fsajfbljfbljfforiinrange(0,len(s)):ifs[i]f:print(i)importstring# 提供了一系列与字符串操作相关的常量和方法。sajfbljfbljf# 获取元素为f的下标 【和索引相关 遍历索引 枚举遍历】# 1. 遍历索引 产生索引 0 -- len-1foriinrange(0,len(s)):# i 表示的是索引ifs[i]f:print(i)# 2. 枚举遍历forpos,eleinenumerate(s):# pos 索引 ele 字符ifelef:print(pos)# 最简单的办法a0foriins:ifif:print(a)else:a1# 2,5,8# 获取 索引能被2整除或者能被3整除 对应的字符# 1. 遍历索引foriinrange(0,len(s)):# i 表示的索引ifi%30ori%20:print(s[i])# 2. 枚举遍历forpos,eleinenumerate(s):# pos 索引 ele 字符ifpos%20orpos%30:print(ele)# 获取s中索引能被2整除并且能被3整除的字符# 1. 遍历索引foriinrange(0,len(s)):ifi%20andi%30:print(s[i])# 2. 枚举遍历forpos,eleinenumerate(s):ifpos%20andpos%30:print(ele)# 获取s中l的索引forpos,eleinenumerate(s):ifelel:print(pos)7.转义字符\对一些符号进行转义\n---newline 换行的操作 将光标定位到下一行的行首 \t---tab tab 横向制表符 \r---return回车的操作 和 \n的区别 将光标定位到本行的行首 如果\r之前有内容 先把内容删除 写后面的内容 \v--纵向制表符[在控制台展现不出效果]\f--翻页[在控制台展现不出效果]\u--unicode编码 win系统 c:\user \ -- 表示单引号 \ -- 表示双引号 \\--\print(hello\vworld)# helloworldprint(hello\fworld)# helloworld## 这俩在这个python终端不显示展示案例# 换行print(a\nb)a[换行]bprint(len(a\nb))# 3 \n 占用一个位置# tabprint(a\tb)# a bprint(len(a\tb))# 3 \t 占用一个位置 【但制表符等于4个空格】# \rprint(a\rb)# bprint(len(a\rb))# 3# \v \fprint(a\vb)# abprint(len(a\vb))# 3print(a\fb)# abprint(len(a\fb))# 3# 打印 Im fineprint(Im fine)# Im fineprint(I\m fine)# Im fine \ 表示 # 路径# 防止转义 1. \\ -- \ 2. 使用r/R修饰符修饰print(C:\\Users\\tac\\rocuments\\Python2304\\Python基础\\Day02\\视频)print(rC:\Users\mac\Documents\Python2304\Python基础\Day02\视频)print(ra\nb)# a\nbprint(len(ra\nb))# 4# raw string 原始字符串8.字符串的获取操作# 1. 获取子串在字符串中第一次出现的位置 不包含结束位置# 1字符串对象.find(子串起始索引结束索引)# 起始和结束不给 默认在整个字符串中查找 如果只给起始不给结束 默认从起始位置到最后查找# 如果找到返回的是第一次的索引位置【正向的】 如果找不到 返回 -1sabcabcabcprint(s.find(abc))# 0 # 只返回第一个字母的位置print(s.find(abc,1))# 3print(s.find(abc,1,6))# 3print(s.find(abc,1,5))# -1 # 没有返回-1# 2 字符串对象.index(子串起始索引结束索引)# 如果找不到 报错 -- 与find的区别print(s.index(abc))# 0print(s.index(abc,1))# 3print(s.index(abc,1,6))# 3# print(s.index(abc, 1, 5)) # ValueError: substring not found# 2. 获取子串自字符串中最后一次出现的位置# 1 字符串对象.rfind(字符串起始结束)# 如果找到返回最后一次出现的位置 如果找不到 返回-1sabcabcabcprint(s.rfind(abc))# 6print(s.rfind(abc,7))# -1print(s.rfind(abc,1,6))# 3# 2 字符串对象.rindex(字符串起始结束)# 如果找到返回最后一次出现的位置 如果找不到 报错print(s.rindex(abc))# 6# print(s.rindex(abcd)) # ValueError: substring not found# 3. 获取某个子串在字符串中出现的次数sabcabcabc# 字符串对象.count(子串起始结束)print(s.count(abc))# 3print(s.count(abc,2))# 2print(s.count(abcd))# 0# 注意注意注意 记的是 不重叠的sababababab# 数 abab 出现的次数print(s.count(abab))# 29.字符串的转化# 1. 将小写英文字母转化为大写 其他不变 字符串对象.upper()sHow aRe yOuprint(s.upper())# HOW ARE YOU# 2. 将大写英文字母转化为小写 其他不变 字符串对象.lower()print(s.lower())# how are you# 3. 将大写英文字母转化为小写 将小写英文字母转化为大写 其他不变 字符串对象.swapcase()print(s.swapcase())# hOW ArE YoU# swap 交换# case 字母大小写# 4. 将字符串的首字母大写 同时 将其他英文字母小写 其他不变 字符串对象.capitalize()print(s.capitalize())# How are you# capital大写# -ize动词后缀表示...化# 5. 将字符串中每个单词的首字母大写 其他英文字母小写 其他不变 字符串对象.title()print(s.title())# How Are You10.判断的操作# 1. 判断字符串是否纯数字组成 字符串对象.isdigit()s1123s2123aprint(s1.isdigit())# Trueprint(s2.isdigit())# False# isdigit → is-digit → 是否为数字# 2. 判断是否纯字母组成 字符串对象.isalpha() 注意字母不仅指英文字母s1你好s2abc1print(s1.isalpha())# Trueprint(s2.isalpha())# False# is-alphanumeric → 是否为字母或数字# 3. 判断是否数字或字母组成 字符串对象.isalnum() 注意字母不仅指英文字母# 结果为True 有三种情况 纯数字 纯字母 数字字母s1你好s2abc1s3123print(s1.isalnum())# Trueprint(s2.isalnum())# Trueprint(s3.isalnum())# True# is-alphanumeric → 是否为字母或数字# 4. 判断字符串中的英文字母是否都是大写 字符串对象.isupper()s你好123ABCprint(s.isupper())# True# 5. 判断字符串中的英文字母是否都是小写 字符串对象.islower()sabc123$%^print(s.islower())# True# 6. 判断字符串中的字符是否都是ascii码中的符号 字符串对象.isascii()sADBGbh12你print(s.isascii())# False# 7. 判断字符串中是否每个单词的首字母大写 其他英文字母小写 字符串对象.istitle()sHoW Are Youprint(s.istitle())# False# 8. 判断字符串是否以指定内容开头 字符串对象.startswith(指定内容)sHoW Are Youprint(s.startswith(H))# Trueprint(s.startswith(Ho))# Trueprint(s.startswith(How))# False# start 开头# with 以……# 9. 判断字符串是否以多个内容中的其中一个开头 字符串对象.startswith((内容1内容2内容3)) 注意序列s Are Youprint(s.startswith((Ho,oW,W )))# False# 10 判断字符串是否以指定内容结尾 字符串对象.endswith(指定内容)sHoW Are Youprint(s.endswith(u))# Trueprint(s.endswith(ou))# True# 11. 判断字符串是否以多个内容中的其中一个结尾 字符串对象.endswith((内容1内容2内容3)) 注意序列sHoW Are print(s.endswith((ou,Yo, Y)))# False11.acsii码表不包含汉字:# 判断字符中的字符是否都是ascii码中的符号字符串对象。isascii()sADBGbh12你print(s.isascii())# False # acsii码表不包含汉字12.字符串的编码和解码怎么编的怎么解# 编码方式# gbk 汉字的编码 占2个字节# utf-8 汉字 占3个字节# 1. 字符串的编码 -- 字符串对象.encode(编码方式)# encode() 的作用是把字符串按照指定编码方式转换成字节(bytes)s你好utf_ss.encode(utf-8)print(utf_s)# b\xe4\xbd\xa0\xe5\xa5\xbd 两个汉字产生6个字节gbk_ss.encode(gbk)print(gbk_s)# b\xc4\xe3\xba\xc3# 2. 字符串的解码 --- 字节串对象.decode(解码方式)# 注意 用什么方式 就用什么方式解码 否则的话 会乱码或报错print(utf_s.decode(utf-8))# 你好print(utf_s.decode(gbk))# 浣犲ソprint(gbk_s.decode(gbk))# 你好print(gbk_s.decode(utf-8))# 报错# UnicodeDecodeError: utf-8 codec cant decode byte 0xc4 in position 0: invalid continuation byte# 特点 ascii中128个符号 编码前后 内容不变 大家都一样print(abc1234ASHL.encode(gbk))# babc1234ABFprint(abc1234ABF.encode(utf-8))# babc1234ABF13.字符串的判断英文字母的操作汉字也属于字母判断纯英文字母方式先编码再判断 因为中文会出现 \ 但数字会变成数字字母也会变成字母# 判断操作# 判断是否纯字母组成 isalpha()# 判断是否数字或字母 isalnum()# 字母不仅指英文 汉字也属于字母# 编码和解码# ascii中的内容 编码前后 不变的# 中文\日文、韩文等 编码后 会变成字节数据 如 \x5e\xbd\xe5\xfc -- 会出现 \# 十六进制 0123456789 abcdef -- 数字或英文字母 x -- 英文字母# 判断字符串是否纯英文字母组成此处不包含汉字之类的 -- 字符串.encode(编码方式).isalpha()# 字符串对象.encode(编码方式).isalpha() -- 纯英文字母# ‘abcdef’.encode(编码方式) --编码后还是 ‘abcdef’ 不会变# ‘你好’.encode() -- \xac\xde\xe3 -- 它不是是纯字母 中文编码后多一个 \ 容易识别例子 s你好print(s.isalpha())# Trueprint(s.encode(gbk).isalpha())# False 有\sabcABCprint(s.isalpha())# Trueprint(s.encode(utf-8).isalpha())# True# 判断字符串是否为数字或英文字母 -- 字符串.encode().isalnum()sabc123print(s.encode(utf-8))# babc123print(s.encode(utf-8).isalnum())# True# 如果 判断 数字和字母组成 1.满足数字或字母 2.不是纯数字 3. 不是纯字母# 之前是数字或字母 纯数字 纯字母 数字字母s123bprint(s.isalnum()andnot(s.isdigit())andnot(s.isalpha()))# True# 数字或字母 不是纯数字 不是纯字母14.补充s床前明月光疑是地上霜print(s[6:1:1])# 不符合要求为空# 从右向左获取 第8个字符 到 第3个字符print(s[7:1:-1])# 是疑光月明print(s[-5:0])# 空print(s[-5::1])# 疑是地上霜print(s[-5:])# 疑是地上霜# 可以混合用print(s[::])# 省略的话结束位置也能取到s1asdhfdfabjbsdfjlabdfjdfldajkdgf# 从右向左获取前10个字符print(s1[9::-1])# jbafdfhdsaprint(s1[:10][::-1])# [::-1]反转也能取到print(1and0or1)# or 左边不成立取右边sabcabcabcprint(s.rfind(abc))# 6 # 显示的下标是正向的print(s.rfind(abc,7))# -1 # 找不到报-1print(s.rfind(abc,1,6))# 3# 各国语言都属于字母s1你好s2abc1print(s1.isalpha())# Trueprint(s2.isalpha())# False