Python基础语法【第二篇】——流程控制、循环、字符串介绍

Python基础语法系列导航

1.第一篇——开发环境、变量、数据类型、运算符介绍
2.第二篇——流程控制、循环、字符串介绍
3.第三篇——列表和元组介绍
4.第四篇——字典和集合介绍
5.第五篇——部分数据类型公共方法、生成式介绍
6.第六篇——函数介绍
7.第七篇——文件操作介绍



前言

Python基础语法笔记,记录一下学习过程


提示:以下是本篇文章正文内容,下面案例可供参考

04.if语句

1.if 的作用和语法

  • 作用:条件语句,条件成立执行某些代码,条件不成立则不执行这些代码

  • 语法:有冒号出现则注意缩进!

    if 条件1:
        print("条件成立执行的语句1")
    if 条件2:
        print("条件成立执行的语句2")
    
  • 体验:

    if True:
        print("条件成立执行的语句1")
    
    # 下方的代码没有缩进,不属于if语句块里面
    print("无论条件是否成立,我都会执行")
    


2.if … else…

  • 作用:条件成立执行if下方的代码,条件不成立执行else下方的代码

  • 语法:有冒号出现则注意缩进!

    if 条件1:
        print("条件1成立执行的语句1")
    else:
        print("条件1不成立则执行的语句2")
    


3.elif

  • 作用:多重判断配合else配合作用,一般else放在最后面,当以上条件均不成立的时候执行

  • 语法:有冒号出现则注意缩进!

    if 条件1:
        print("条件1成立执行的语句1")
    elif 条件2:
        print("条件2成立执行的语句2")
    elif 条件3:
        .....
    else:
        print("以上条件均不成立执行的语句")
    


4.if嵌套

  • 作用:一个大的 if 里面嵌套一个 if

  • 应用场景:例如坐公交,有钱能上车,还要有空座位才能坐下,同时满足两个条件才成立

  • 语法:有冒号出现则注意缩进!

    if 有钱:
        print("上公交车了!")
        
        if 有空座位:
            print("真正坐公交了!")
    
  • 执行流程:
    在这里插入图片描述


5.random模块

  • 作用:random是关于获取随机数的模块

  • 语法:

    # import 模块名
    import random
    
  • 常用函数:

    # 变量名 = random.randint(开始,结束)
    # 获取从[1,5]的随机整数
    int = random.randint(1,5)
    


6.三目运算符

  • 作用:化简if…else…这种代码量,前提是成立后只有一句执行语句时

  • 语法:

    #条件成立执行的表达式 if 条件 else 条件不成立执行的语句
    a = 1
    b = 2
    
    # 先看if条件,再看表达式结果
    c = a if a > b else b
    print(c)
    



05.while循环

1.while的作用和语法

  • 作用:高效多次重复执行某一行为代码块

  • 语法:有冒号出现则注意缩进!

    while 条件:
        条件成立重复执行的代码1
    
  • 注意:while条件里面要有条件递进表达式,否则会无限循环

    i = 0
    while i < 5:
        print("输出语句1")
        i += 1  # 条件递进表达式
        
    # 下方的代码没有缩进,不属于while语句块里面
    print("while成立如果不陷入死循环,我都会执行")
    
  • 体验:以后的程序都按罗列需求-分析-编程的三部曲来,思路会清晰得多

    # 需求:1-100数字累加
    """
    分析:
    1. 准备做加法运算的的数据1-100 增量为1
    2. 准备变量保存将来运算的结果
    3. 循环做加法运算
    4. 打印结果
    """
    
    # 准备数字
    i = 1
    # 结果变量
    result = 0
    # 循环做加法运算
    while i <= 100:
        #加法运算,前两个数的结果 + 第三个数 -- 每计算一次加法则更新一次result
        result += i
        #增量+1,避免陷入无限循环
        i += 1
        
    # 打印结果
    print(result)
    


2.break和continue

break和continue是循环中满足一定条件退出循环的两种不同方式

2.1.break
  • 作用:哪里有break,执行到break的时候就退出当前层次的循环

  • 语法:

    i = 0
    while i < 2:
        print("我只能循环一次,因为下面有break. TAT")
        break # 执行后退出循环
    
2.2.continue
  • 作用:哪里有continue,执行到continue退出当前一次循环不执行剩下语句,而去执行下一次循环

  • 语法:

    i = 0
    while i < 5:
        if i == 2:
            print("我将是一个无限循环的语句,你思考下为什么?")
            continue # 思考后,你应当明白要在continue之前加上递进表达式.否则会陷入死循环
        print("我只能执行2次")
        i += 1
    


3.while…else

  • 作用:简化代码量,更直观。当while代码块执行完后,执行else语句块

  • 语法:

    while 条件:
        条件成立重复执行的代码
        递进语句
    else:
        循环正常结束之后要执行的代码
    
3.1.while…else之break
  • 作用:综合运用

  • 应用例子:

    while 条件:
        条件成立重复执行的代码
        递进语句
        if 条件:
            break
    else:
        循环break后,这行代码不会执行,因为非正常终止循环结束
    
3.2.while…else之continue
  • 作用:综合运用

  • 应用例子:

    while 条件:
        条件成立重复执行的代码
        递进语句
        if 条件:
            递进语句
            continue 
    else:
        循环正常结束之后要执行的代码,唯一区别就是少了if成立后continue下面的语句
    


4.while循环嵌套

  • 作用:外层循环控制着内层循环执行的次数

  • 语法:

    while 条件1:
        print("条件1成立执行的代码")
        
        while 条件2:
            print("条件2成立执行的代码")
    
  • 应用场景:

    # 一天刷3次碗,连续刷三天
    j = 1
    while j <= 3:
        i = 1
        while i <= 3:
            print("这是第%d天第%d次刷碗筷" %(j, i))
            i += 1
        print(f"----第{ j }天结束了----")
        j += 1
    
  • 练习:打印九九乘法表

    # 需求:九九乘法表
    """
    分析:
    1. 九九乘法表类似于三角形
    2. 1*1 = 1
       1*2 = 2  2*2 = 4
       1*3 = 3  2*3 = 6  3*3 = 9
    3. 发现规律,第2个乘数是不变的,变的是第一个乘数
    4. 编程
    """
    # 思考下为什么这样写,注释我不加了,自己一步步分析看看
    i = 1
    while i <= 9:
        j = 1
        while j <= i:
            print(f"{j}*{i}="+str(j*i), end="\t")
            j += 1
        print("\n")
        i += 1
    



06.for循环

1.for的作用和语法

  • 作用:高效多次重复执行某一行为代码块,同while一样

  • 语法:

    for 临时变量 in 序列:
        print("重复执行的代码1")
    
  • 注意:for循环里面无需递进表达式,它自己会自动递进的

    str1 = "helloworld"
    for i in str1:
        print(i, end="..")
    # 输出:h..e..l..l..o..w..o..r..l..d..
    


2.break和continue

break和continue是循环中满足一定条件退出循环的两种不同方式

2.1.break
  • 作用:哪里有break,执行到break的时候就退出当前层次的循环

  • 语法:

    str1 = "hello world"
    for i in str1:
        # 当遇到i=e的条件成立退出循环
        if i == 'e':
            break
        print(i, end="..")  
    # 输出:h..
    
2.2.continue
  • 作用:哪里有continue,执行到continue退出当前一次循环不执行剩下语句,而去执行下一次循环

  • 语法:

    str1 = "hello world"
    for i in str1:
        # 当遇到i=e的条件成立时不执行剩下语句,而去重新执行下一次循环
        if i == 'e':
            continue
        print(i, end="..")  
    # 输出:h..l..l..o.. ..w..o..r..l..d..
    


3.for…else

  • 作用:简化代码量,更直观。当for代码块执行完后,执行else语句块

  • 语法:

    for 临时变量 in 序列:
        重复执行的代码
    else:
        循环正常结束之后要执行的代码
    
3.1.for…else之break
  • 作用:综合运用

  • 应用例子:

    for 临时变量 in 序列:
        重复执行的代码
        if 条件:
            break
    else:
        循环break后,这行代码不会执行,因为非正常终止循环结束
    
3.2.for…else之continue
  • 作用:综合运用

  • 应用例子:

    for 临时变量 in 序列:
        重复执行的代码
        if 条件:
            continue 
    else:
        循环正常结束之后要执行的代码,唯一区别就是少了if成立后continue下面的语句
    


4.for循环嵌套

  • 作用:外层循环控制着内层循环执行的次数

  • 语法:

    for 临时变量1 in 序列:
        print("重复执行的代码1")
        
        for 临时变量2 in 序列:
            print("重复执行的代码2")
    


5.总结

在这里插入图片描述



07.字符串

总结:字符串是不可变数据类型

1.认识字符串

字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。

  • 字符串特征:

    • 一对引号字符串
    name1 = 'Tom'
    name2 = "Rose"
    
    • 三引号字符串
    name3 = ''' Tom '''
    name4 = """ Rose """
    a = ''' i am Tom, 
            nice to meet you! '''
    
    b = """ i am Rose, 
            nice to meet you! """
    

    注意:三引号形式的字符串支持换行。

    思考:如果创建一个字符串I'm Tom?

    c = "I'm Tom"
    d = 'I\'m Tom'
    
  • 字符串输出:print()

  • 字符串输入:在Python中,使用input()接收用户输入


2.下标

“下标”又叫“索引”,就是编号。比如火车座位号,座位号的作用:按照编号快速找到对应的座位。同理,下标的作用即是通过下标快速找到对应的数据。

  • 语法:
name = "abcdef"

print(name[1])  # b
print(name[0])  # a
print(name[2])  # c

注意:下标从0开始。


3.切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

  • 语法:

    序列[开始位置下标:结束位置下标:步长]
    

    注意:

    1. 不包含结束位置下标对应的数据, 正负整数均可;
    2. 步长是选取间隔,正负整数均可,默认步长为1;
    3. 逆序第一个数据对应下标-1,倒数第二个-2,以此类推。
    
  • 练习:

    name = "abcdefg"
    
    print(name[2:5:1])  # cde
    print(name[2:5])  # cde
    print(name[:5])  # abcde
    print(name[1:])  # bcdefg
    print(name[:])  # abcdefg
    print(name[::2])  # aceg
    print(name[:-1])  # abcdef, 负1表示倒数第一个数据
    print(name[-4:-1])  # def
    print(name[::-1])  # gfedcba
    


4.常用操作方法

字符串的常用操作方法有查找、修改和判断三大类,所有操作均有返回值。

4.1.查找

所谓字符串查找方法即是查找子串在字符串中的位置或出现的次数

  • find():检测某个子串是否包含在这个字符串中,如果在则返回这个子串开始的位置下标,否则则返回-1。

    • 语法:

      字符串序列.find(子串, 开始位置下标, 结束位置下标)
      

    注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      print(mystr.find('and'))  # 12
      print(mystr.find('and', 15, 30))  # 23
      print(mystr.find('ands'))  # -1
      
    • 扩展:rfind()

      和find()功能相同,但查找方向为==右侧==开始。
      
  • index():检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。

    • 语法:

      字符串序列.index(子串, 开始位置下标, 结束位置下标)
      

      注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      print(mystr.index('and'))  # 12
      print(mystr.index('and', 15, 30))  # 23
      print(mystr.index('ands'))  # 报错
      
    • 扩展:rindex()

      和index()功能相同,但查找方向为==右侧==开始。
      
  • count():返回某个子串在字符串中出现的次数

    • 语法:

      字符串序列.count(子串, 开始位置下标, 结束位置下标)
      

      注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      print(mystr.count('and'))  # 3
      print(mystr.count('ands'))  # 0
      print(mystr.count('and', 0, 20))  # 1
      
4.2.修改

所谓修改字符串,指的就是通过函数的形式修改字符串中的数据

  • replace():替换,并返回一个字符串对象

    • 语法:

      字符串序列.replace(旧子串, 新子串, 替换次数)
      

      注意:如果替换次数 > 查出子串出现次数,则替换次数为该子串出现次数。

    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      # 结果:hello world he itcast he itheima he Python
      print(mystr.replace('and', 'he'))
      # 结果:hello world he itcast he itheima he Python
      print(mystr.replace('and', 'he', 10))
      # 结果:hello world and itcast and itheima and Python
      print(mystr)
      

      注意:这里看似字符串使用replace方法进行修改数据,实则是重新创建一个新的字符串对象,进行替换而已。我们数据按照是否能直接修改分为可变类型不可变类型两种。字符串类型的数据修改的时候不能改变原有字符串,属于不能直接修改数据的类型即是不可变类型。不可变数据类型需要用变量对象来存装使用,而可变数据类型则直接用原先的对象即可。

  • split():按照指定字符分割字符串,并返回一个列表对象

    • 语法:

      字符串序列.split(分割字符, num)
      

      注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。

    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      # 结果:['hello world ', ' itcast ', ' itheima ', ' Python']
      print(mystr.split('and'))
      
      # 结果:['hello world ', ' itcast ', ' itheima and Python']
      print(mystr.split('and', 2))	# 返回2+1=3个
      
      # 结果:['hello', 'world', 'and', 'itcast', 'and', 'itheima', 'and', 'Python']
      print(mystr.split(' '))
      
      # 结果:['hello', 'world', 'and itcast and itheima and Python']
      print(mystr.split(' ', 2))	# 返回2+1=3个
      

      注意:如果分割字符是原有字符串中的子串,分割后则丢失该子串。正如举例中and是原有字符串的子串,按and分隔,结果把and丢失了。

  • join():用一个字符或子串合并字符串,即是将多个字符串合并为一个新的字符串。

    • 语法:

      字符或子串.join(多字符串组成的序列)
      
    • 举例:

      list1 = ['chuan', 'zhi', 'bo', 'ke']
      t1 = ('aa', 'b', 'cc', 'ddd')
      # 结果:chuan_zhi_bo_ke
      print('_'.join(list1))
      # 结果:aa...b...cc...ddd
      print('...'.join(t1))
      
  • capitalize():将字符串第一个字符转换成大写。

    • 语法:

      字符串序列.capitalize()
      
    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      # 结果:Hello world and itcast and itheima and python
      print(mystr.capitalize())
      

      注意:capitalize()函数转换后,只字符串第一个字符大写,其他的字符全都小写。

  • title():将字符串每个单词首字母转换成大写。

    • 语法:

      字符串序列.title()
      
    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      # 结果:Hello World And Itcast And Itheima And Python
      print(mystr.title())
      
  • lower():将字符串中每个单词大写转小写。

    • 语法:

      字符串序列.lower()
      
    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      # 结果:hello world and itcast and itheima and python
      print(mystr.lower())
      
  • upper():将字符串中每个单词小写转大写。

    • 语法:

      字符串序列.upper()
      
    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      # 结果:HELLO WORLD AND ITCAST AND ITHEIMA AND PYTHON
      print(mystr.upper())
      
  • lstrip():删除字符串左侧空白字符。

    • 语法:

      字符串序列.lstrip()
      
    • 举例:

      mystr = "	hello world and itcast and itheima and Python"
      
      #"hello world and itcast and itheima and Python"
      print(mystr.lstrip())
      

      注意:rstrip():删除字符串右侧空白字符。

      ​ strip():删除字符串两侧空白字符。

  • ljust():返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串。

    • 语法:

      字符串序列.ljust(长度, 填充字符)
      
    • 举例:

      mystr = "hello"
      #"hello....."
      print(mystr.ljust(10, '.'))
      
      #"hello		"
      print(mystr.ljust(10))
      

      注意:rjust():返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串,语法和ljust()相同。

  • center():返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串,语法和ljust()相同。

    • 语法:

      字符串序列.center(长度, 填充字符)
      
    • 举例:

      mystr = "hello"
      #"..hello..."
      print(mystr.center(10, '.'))
      
      #"	hello	"
      print(mystr.center(10))
      
4.3.判断

所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False。

  • startswith():检查字符串是否是以指定子串开头,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。

    • 语法:

      字符串序列.startswith(子串, 开始位置下标, 结束位置下标)
      
    • 举例:

      mystr = "hello world and itcast and itheima and Python   "
      
      # 结果:True
      print(mystr.startswith('hello'))
      
      # 结果False
      print(mystr.startswith('hello', 5, 20))
      
  • endswith()::检查字符串是否是以指定子串结尾,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。

    • 语法:

      字符串序列.endswith(子串, 开始位置下标, 结束位置下标)
      
    • 举例:

      mystr = "hello world and itcast and itheima and Python"
      
      # 结果:True
      print(mystr.endswith('Python'))
      
      # 结果:False
      print(mystr.endswith('python'))
      
      # 结果:False
      print(mystr.endswith('Python', 2, 20))
      
  • isalpha():如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False。

    • 语法:

      字符串序列.isalpha()
      
    • 举例:

      mystr1 = 'hello'
      mystr2 = 'hello12345'
      
      # 结果:True
      print(mystr1.isalpha())
      
      # 结果:False
      print(mystr2.isalpha())
      
  • isdigit():如果字符串只包含数字则返回 True 否则返回 False。

    • 语法:

      字符串序列.isdigit()
      
    • 举例:

      mystr1 = 'aaa12345'
      mystr2 = '12345'
      
      # 结果: False
      print(mystr1.isdigit())
      
      # 结果:True
      print(mystr2.isdigit())
      
  • isalnum():如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。

    • 语法:

      字符串序列.isalnum()
      
    • 举例:

      mystr1 = 'aaa12345'
      mystr2 = '12345-'
      
      # 结果:True
      print(mystr1.isalnum())
      
      # 结果:False
      print(mystr2.isalnum())
      
  • isspace():如果字符串中只包含空白,则返回 True,否则返回 False。

    • 语法:

      字符串序列.isspace()
      
    • 举例:

      mystr1 = '1 2 3 4 5'
      mystr2 = '     '
      
      # 结果:False
      print(mystr1.isspace())
      
      # 结果:True
      print(mystr2.isspace())
      


5.总结

  • 下标
    • 计算机为数据序列中每个元素分配的从0开始的编号
  • 切片
序列名[开始位置下标:结束位置下标:步长]
  • 常用操作方法
    • 查找:
      • find()
      • index()
      • count()
    • 修改:
      • replace()
      • split()
      • join()



总结

有误之处,欢迎指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值