Python语法基础1—字符串&列表&布尔表达式

  1. python的概述和简介

  • 概述:python是一种解释型、交互式、言面向对象的编程语言;

  • 优点:语法简单易学,支持面向对象也支持面向过程,功能强大所支持的第三方库众多;

  • 缺点:运行速度慢(解释型语言的通病),代码的加密困难(直接运行源代码)

  • 注意点:严格区分大小写,代码行首字符不能为数字,严格要求缩进

  1. python&pycharm的安装配置

思考🤔1:在python命令行中有几种退出方式?
quit(); exit(); control+Z
思考🤔2:python中的数据类型?Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
  1. python基础—字符串

字符串的定义
  1. 定义: 用引号号引起来的字符,就是字符串,例如:'abcdefg', "hello", "lt's a pen"
  1. 单引号和双引号都可以表示字符串
# str1='It's OK'  #invalid syntax  表示语法错误
# str1="It's OK"  #字符串中有单引号时,外面用双引号
# print(str1)
# str2="He said:"Are you OK?""  #语法错误
# str2='He said:"Are you OK?"'  #字符串中有双引号时,外面用单引号
# print(str2)
  1. 三引号,可以用三个单引号''' ''',也可以用三个双引号""" """
在换行比较多的情况下,可以用三引号,这样就不需要手动输入换行符
str3 = '''花间一壶酒
独酌无相亲'''
#str3 = '花间一壶酒,\n独酌无相亲'
print(str3)

使用时机:字符串中既有单引号,也有双引号的场合,用三引号除了使用单行代码外,也可以使用三引号注释多行代码
#print('OK')
"""print('OK')"""

########################知识点引申——转义符的操作########################
思考?转义符的字符长度是多少?
print(len('\n')

思考🤔:字符串是否可变???

字符串的拼接
  • 直接通过(+)操作符拼接

s = 'Hello'+' '+'World'+'!'
print(s)
  • 通过str.join()方法拼接

list1 = ['a','b']
str1 = ''.join(list1)
print(str1)
str2 = 'my'
print(str2.join(list1))

#思考🤔:
str3 = 'your'
print(str2.join(str3))结果是怎样的?
  • 通过str.format()方法拼接

str1 = '{}{}'.format('your','mine')
print(str1)
  • 通过(%)操作符拼接

str1 = 'my %s is %s'%('age','16')
print(str1)
  • 通过F-strings拼接

s1 = 'my'
s2 = 'your'
s3 = f'{s1} {s2}'
print(s3)

字符串的下标
#字符串的下标有两种表示,正向&负向
s1 = 'Python'
#正向:以P>>n,依次为s1[0],s1[1],s1[2],s1[3],s1[4],s1[5]
#逆向:以n>>P,依次为s1[-1],s1[-2],s1[-3],s1[-4],s1[-5],s1[-6]
思考🤔:如何把字符串倒序展示出来?——切片print(s1[::-1])
字符串的切片
"""
字符串切片的语法s[起始值:终止值:步长]
s = 'abcdefghijk'
"""
1.起始值从0开始数起,包括起始值不包括终止值(半闭半开区间),可以不带上步长(默认为1,缺值)
print(s[0:6]) 结果为:'abcdef'

2.起始值不写表示从头开始取值,可以用 [ : a]来表示;
print(s[:6]) 结果为:'abcdef'

3.终止值不写,表示取到后面所有的的值,可以用[ a : ]来表示
print(s[6:]) 结果为:'ghijk'

思考🤔:步长为负数,如何取值结果也为'abcdef'
4.起始终止值可以为负数,步长也可以是负数,步长的正负代表切片的方向:
步长为正数,取值方向从左到右;步长为负数,取值方向从右到左;

#思考🤔:如何切片结果为'fedcba'?print(s[:6:-1])对吗?
#print(s[5::-1])
#print(s[-6:-12:-1])

5.步长可以为2,字符跳着取
print(s[::-2]) 结果为:acegik

6.切片是一个新对象,不影响原字符串

  1. python基础—列表

1.python中用[]表示列表,列表可以存在任意的列表对象
list1 = ['1',2,'abc',['a','b'],{'a':'3'}]

2.list为可变对象,可以修改
list1[0] = 'LiveIn'
print(list1)
list1[3][1] = 'Lively'
print(list1)

3.list的新增操作:append添加到列表末尾
list1.append('LiveStatus')
print(list1)
insert()方法,添加元素到指定位置
list1.insert(1,520)
print(list1)
思考🤔:list1.insert(999999,1024),list1的结果是什么?extend()方法,列表的拼接
list2 = [2,3]
list3 = [4,5]
list2.extend(list3)
print(list2)

4.列表元素的删除pop()删除方法,可以指定位置删除,也可以默认删除最后一位
list4 = [1,2,3,4,5]
list4.pop()
print(list4)
list4.pop(1)
print(list4)
思考🤔:list4.pop(999)正确吗?remove()删除方法,可以根据值来删除,值不存在会报错
list5 = [1,2,3,4,5]
list5.remove(5)
print(list5)
del删除方法,根据下标删除
list6 = [1,2,3,4,5]
del list6[1]
print(list6)
列表推导式方式去除元素
list7 = [1,2,3,4,5]
list7 = [x for x in list7 if x !=3 and x !=2]
print(list7)

5.列表的切片与字符串的切片相似,切片后的列表是一个新的对象,不影响原列表的值
list8 = [1,2,3,4,5]
print(list8[::-1])

6.列表的排序和去重
排序&去重
list9 = [3,2,3,4,2,5,9]
list9 = list(set(list9))
print(list9)
排序
#默认正序reverse=False
list9.sort(reverse=False)
print(list9)
#倒序reverse=True
list9.sort(reverse=True)
print(list9)

7.列表的遍历
list10 = [3,2,3,4,2,5,9]
for one in list10:
    print(one)

  1. python基础—布尔表达式

#布尔表达式只有两种取值:True/False
1.等号:布尔表达式中一个等号代表赋值,两个等号代表判断相等 
print(1==1)
print(1==2)
2.字符之间的比较一般比较的是字符的ASCII码值,a=97,A=65
print('a'>'A') 结果为True
#大写26个字母的ASCII码值是[65,90],小写的是[97,122]
3.多个字母的比较,先比较首字母,首字母相同比较下个字母
print('aA'>'Aa')
print('aA'>'aa')
4.布尔表达式中的True和False可以参与算术运算,True相当于1,False相当于0
print(True+False),print(True+True)
5.布尔表达式中的in和notin
list1 = [1,2,3,4,5,[6,7]]
list2 = [5,6,7]
a = 3
print(a in list1),print(a not in list2)
思考🤔:print(list1[-1] in list2)的布尔值?
6.布尔表达式中的逻辑运算符(and,or)
print(1<2 and 2<1)
#结果为False,一假为假,全真为真
print(2<1 or 2<3 or 9>10)
#结果为True,一真为真,全假为假
7.逻辑运算符的排序not>and>or
print(True and 10 > 3 and not 4 < 3 and 1 == 1)
# True
print(False or 10 < 3 or not 4 < 3 or 1 == 1)
# True
print(False and 10 < 3 or 4 < 3 or not 5 > 4)
#False
8.返回值为布尔表达式的函数:isinstance(判断的数,类型)
print(isinstance(1,int))
思考🤔:如何用布尔值判断是否为字符串?
print(type('1')==str)print(isinstance('1',str))
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值