第13课:字符串是什么(认识字符串)
知识点
- 双引号或者单引号中的数据,就是字符串。
- 用下标方式来确定字符在字符串中的位置。
- 取出某个字符:变量名[下标]。
- 切片是指对操作的对象截取其中一部分的操作。
- 切片的语法:[起始:结束:步长],选取的区间属于左闭右开型,例如:name[0:2]。
任务
1、如果name = ‘abcd’,使用切片的方式取前两个字符,应该如何获取?
2、name = 'abcd',如何使name变量中的 abcd 变为dcba ? 想想课程中学习的切片方法,动手来实现一下吧!
3、小朋友们开动脑筋,想想切片在哪些场景中能使用到呢?使用切片的方式,能够给我们的程序带来哪些便利呢?
课后练习
- 第11题 单选题【python二级2020-6】
- password=“123456”,使用切片的方法取出“345”
- password=“123456”,使用切片的方法取出“543”
第14课:拼接字符串和检查字符是否存在
知识点
- 字符串的拼接: +
- 字符串的乘法: *
- 检查字符串中是否含有某个字符: in
- 检查字符串中是否不含有某个字符: not in
- 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。
任务
1、定义4个变量分别存储“望庐山瀑布”的四句诗,把它们拼接打印出来。
日照香炉生紫烟,遥看瀑布挂前川。
飞流直下三千尺,疑是银河落九天。
2、我们来试试看,能不能测试“你”这个字,是否不在“我爱你”这个字符串内呢?(小提示 v not in sth)
3、想一想看,我们能不能测出字符串的长度呢?我们应该怎么做?
课后练习
- 第27题 判断题【python二级2020-6】
a1='hello' a2='everybody' print(a1*2+a2)运行结果为hellohelloeverybody
第15课:查找、统计、分割字符串
知识点
字符串的查找和统计(如果不指定范围,默认从字符串开始到结束。)
str.find(s,begIndex,endIndex)表示在切片str[begIndex,endIndex]中,查找s第一次出现的索引, 找不到返回-1。
str.rfind(s,begIndex,endIndex)表示在切片str[begIndex,endIndex]中,反向查找s第一次出现的索引,找不到返回-1。
str.index(s,begIndex,endIndex)表示在切片str[begIndex,endIndex]中,查找s第一次出现的索 引,找不到报异常。
str.rindex(s,begIndex,endIndex)表示在切片str[begIndex,endIndex]中,反向查找s第一次出现的索引,找不到报异常。
str.count(s,begindex,endindex)表示在切片str[begIndex,endIndex]中,统计s出现的次数。
字符串的分割
str.split(s="", num=string.count(str) ) 以 s为分隔符分割str,得到一个子串列表并返回,s 为分隔符,默认为所有的空字符,包含\n \r \t \f and spaces。 如果 num(分割次数)有指定值,则仅分隔 num 个 子字符串。
str.splitlines([keepends])按照行(‘\r’,‘\r\n’,‘\n’)分隔, 返回一个包含各行作为元素的列表,如果参数 keepends为False,不保留换行符,如果为True则保留换行符。
str.partition()使用指定的分隔符把字符串分割为三部分。如果字符串包含指定的分隔符,则返回一 个3元的元组,第一个为分隔符左边的子串,第二个 为分隔符本身,第三个为分隔符右边的子串。如果字符串不包含指定的分隔符,则返回字符串本身和两个空字符串构成的元组。
str.rpartition() 方法类似于partition,不过是反向分隔。
任务
1、定义一个字符串,使用什么方法能够统计出字符串中100出现的次数呢?
str="200,300,100,101,201,100"
2、想一想使用字符串中的哪种方法能够将下列字符串以空格切分为单词呢?
str="hello my name is sun wu kong!"
3、想一想学习的这些字符串方法有哪些应用场景呢?
课后练习
str="唐僧,孙悟空,猪八戒,沙僧,孙悟空,孙悟空,猪八戒,猪八戒,唐僧"对上面字符串做下面的操作
1、统计字符串中“孙悟空”出现的次数。
2、 查找“孙悟空”最后一次出现的索引。
3、以逗号分隔字符串,得到一个名字列表。
第16课:字符串的特征检查和大小写转换
知识点
检查字符串特征
str.startswith(str, beg=0,end=len(string)):检查字符串是否以指定字符串开头.
str.endswith(str,beg=0,end=len(string)):检查字符串是否以指定字符串结尾.
str.isalpha():检测字符串是否全是字母组成.
str.isdigit():检测字符串是否全是数字组成.
str.isalnum():检查字符串中的字符要么是字母要么是数字。
str.isspace():检测字符串是否全是空格.
str.isupper(),检测字符串中所有 字符是否都是大写。
str.islower(),检测字符串中所有的 字符都是小写。
大小写转换
str.capitalize():转换后第一个字符大写,其他小写,最后返回转换后的结果。
str.upper():转换后字母全是大写,最后返回转换后的结果。
str.lower():转换后字母全是小写,最后返回转换后的结果。
任务
1、在Python中定义一个字符串,第一个字符是字母,然后使用某种方法使首字母进行大写转换?
2、将一个字符串中所有的字符进行大写转换?
3、使用之前学习过的输入输出方式,与字符串方法进行组合,根据创意发挥,编写一个小程序!
课后练习
1、在Python中定义一个字符串,检查字符串中是不是存在字母数字之外的字符?
2、将一个字符串中所有的字符进行小写转换?
第17课:语句续行符和结束符
知识点
一条语句分多行显示:使用续行符”\“,如果语句中包含 [], {} 或 () 就不需要使用续行符。
同一行显示多条语句:使用分号作为语句结束符,最后一条语句可以省略分号或者使用换行符作为结束符。
任务
1、在同一行进行两组数学运算,并打印出结果。
2、使用print()函数,多条语句在一行打印出一个三角形。
3、使用print()函数,多条语句在一行打印出一个√图形。
4、想一想,多条语句在一行有什么便利?
5、如果让你选择,你会更喜欢一行代码输出还是多行代码输出呢?
课后练习
1、把如下的语句分三行写
r=100-9-8-7-6-52、一行代码打印出如下的长方形:
***** * * * * * * *****第18课:编码、解码、转义字符、输出格式化
知识点
- 对字符串编码:
string.encode(encoding='UTF-8', errors='strict')以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace',返回值为bytes类型对象。
解码:bytes.decode(encoding='UTF-8', errors='strict')以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace,返回值为字符串类型。
转义字符:\在行尾时作为续行符,\n换行符,\"双引号,\'单引号,还有很多。
输出格式化:print("xxxx%格式化控制符xxxx" %变量名),
格式化控制符:s,格式化字符串,d,格式化整数,f,格式化浮点数,0.2f,四舍五入保留2位
课后练习
- 用GBK字符集对字符串”孙悟空“编码,得到结果后,再用GBK解码,输出结果
- 输出["red"、"green"、"yellow"]
- 输入商品的名字、价格,然后格式化输出
第21课:多重判断
知识点
- if语句的嵌套使用:
例如:
if 条件表达式1: #满足条件表达式1,就执行下面的if语句 if 条件表达式2: 执行满足条件表达式2的代码 else: 执行不满足条件表达式2的代码 else: 执行不满足条件表达式1的代码任务
- 检查账号和密码是否正确
zhanghao=input("请输入账号:") if zhanghao=="123456": print("您的账号输入正确!") mima=input("请输入密码:") if mima=="654321": print("密码正确,登录成功!") else: print("密码输入错误,请重新运行程序!") else: print("账号错误,请重新运行程序!")- 乘公交时,检查是否有充足的余额买票和是否有空座
import time """ 假设所有公交车的车费都是2元一次 """ money = 10 # 表示公交卡余额 empty_seats = 1 # 表示车辆有空座 if money > 1: print("余额充足,可以上车~") time.sleep(1) if empty_seats > 0: print("有空座,可以坐下了!") else: print("已经没有空的位子了,需要站一会~") else: print("公交卡余额不足2元,无法上车!")课后练习
第22课:多重判断的应用
案例
小明去商店买一包糖,首先小明要出门到达商店,其次小明身上要有足够的钱,才能买到糖,但如果小明没有到达商店或者小明身上的钱不够(假设一包糖的价格是3元),就无法买糖。
算法
自然语言表达算法如下:
# 1.设定人物名字 # 2.设定初始变量值,1表示出门,2表示不出门 # 3.如果条件满足出门,则获取身上钱的输入 # 4.如条件不满足出门,则无法购买糖 # 5.如果同时满足出门与足够的钱,表示已经出门买糖 # 6.如出门满足,钱不满足,则无法成功购买代码实现:
name=input("请输入买糖的人名:") chumen=input("请输入%s是否出门,1代表出门,2代表没出门:"%name) if chumen=='1': money=input("请输入%s身上有多少钱:"%name) money=int(money) if money>=3: print("%s买到了糖"%name) else: print("%s虽然出门了,但是没有足够的钱,还是买不了糖"%name) else: print("%s根本没有出门,所以肯定买不了糖"%name)课后练习
从键盘输入编程比赛的成绩和选手的性别;
如果成绩大于80分可以进入决赛;
如果进入决赛,根据性别判断是男子组还是女子组。
第23课:猜数字小游戏
知识点
随机数模块:random,用来获取一个自定义范围内的随机数。
导入模块 : import random 。
获取1-10之间的一个整数:random.randint(1,10)
程序要求
从键盘中输入一个数值,与电脑产生的数值进行对比,
如果输入的数值大于电脑产生的数值,则提示猜大了;
如果输入的数值小于电脑产生的数值,则提示猜小了;
如果输入的数值等于电脑产生的数值,则提示猜对了!
算法
玩一次猜数字:
import random number = random.randint(1,10) numbers = int(input('请输入所猜测的数值:')) if numbers < number: print('猜小了!') elif numbers > number: print('猜大了!') else: print('恭喜你答对了,你真棒!')如果要玩多次,可以加循环:
import random while True: number = random.randint(1,10) numbers = int(input('请输入所猜测的数值:')) if numbers < number: print('猜小了!') elif numbers > number: print('猜大了!') else: print('恭喜你答对了,你真棒!')课后练习
从键盘中输入一个数值,与电脑产生的数值进行对比,
如果输入的数值大于电脑产生的数值,则提示猜大了,继续猜一次;
如果输入的数值小于电脑产生的数值,则提示猜小了,继续猜一次;
如果输入的数值等于电脑产生的数值,则提示猜对了!