自学python之路(day3)

时间:2022-10-31 15:04:32

基础数据类型---字符串str

1、字符串的索引和切片

索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

a = 'ABCDEFGH'
print(a[0])
print(a[1])
print(a[3])

执行结果:

A
B
D

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾尾)。

a = 'ABCDEFGH'
print(a[1:4])
print(a[0:]) #默认到最后
print(a[0:-1]) #默认到最后一个
print(a[0:6:2]) #加步长
print(a[7:0:-2]) #反向加步长

执行结果:

BCD
ABCDEFGH
ABCDEFG
ACE
HFDB

2、字符串常用方法()

1)captalize、swapcase、title

name='abbY alI'
print(name.capitalize()) #首字母大写,尾字母小写
print(name.swapcase()) #大小写翻转
print(name.title()) #每个单词的首字母大写,尾字母小写

执行结果

Abby ali
ABBy ALi
Abby Ali

2)center()

内同居中,总长度,空白处填充

a1='abby'
print(a1.center(20,"*"))

执行结果:

********abby********

3)count()

Python count() 方法用于统计字符串里某个字符出现次数。可选参数为在字符串搜索开始与结束位置。

语法

count()方法语法:

str.count(sub, start= 0,end=len(string)
  • sub -- 搜索子字符串
  • start -- 字符串开始搜索位置。默认为第一个字符,第一个字符索引值为0。
  • end -- 字符串中结束搜索位置。字符中第一个字符索引为 0。默认为字符串最后一个位置。
a='asssrfjala234'
sub='s'
print(a.count(sub))
print(a.count("s"))
print(a.count("s", 0 ,4))
print(a.count("s", 0 ,3))
print(a.count(""))

执行结果:

3
3
3
2
1

3)expandtabs()

Python expandtabs() 方法把字符串中 tab 符号('\t')转为空格,tab 符号('\t')默认空格数是 8。

# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
a2 = "this is\tabby"
print(a2.expandtabs())
print(a2.expandtabs(18))
a3="this is my\tabby"
print(a3.expandtabs())

执行结果:

this is abby
this is abby
this is my abby

4)startswith() 、endswith()

#startswith 判断是否以...开头
#endswith 判断是否以...结尾
a4="sdfghdjcvn"
print(a4.startswith("sd",0,5)) # 返回的是布尔值
print(a4.endswith("dj",0,7))   # 返回的是布尔值

执行结果

True
True

5)find()

寻找字符串中的元素是否存在;返回找到的元素的索引,如果找不到返回-1。
a4="sdfghdjcvnsdj"
print(a4.find("s",0,5))
print(a4.find("z"))
print(a4.find("dj",0,9))
print(a4.find("dj")) #如果所找元素重复只显示第一个元素的索引

执行结果:

0
-1
5
5

6)index()

寻找字符串中的元素是否存在;返回的找到的元素的索引,找不到报错。
a4="sdfghdjcvnsdj"
print(a4.index("fg"))
print(a4,index("z")) #找不到报错了

执行结果

2
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/untitled/st.py", line 21, in <module>
print(a4,index("z"))
NameError: name 'index' is not defined

7)split()  字符串转换为列表(list)

以什么分割,最终形成一个列表此列表不含有这个分割的元素。
a5="abby,aBBY,aBBy"
print(a5.split(","))
print(a5.split("a"))
a6="Abby,aBBY,aBBy"
print(a6.split("a"))

执行结果:

['abby', 'aBBY', 'aBBy']
['', 'bby,', 'BBY,', 'BBy']
['Abby,', 'BBY,', 'BBy']

8)strip()

strip() 方法用于移除字符串头尾指定字符(默认为空格或换行符)或字符序列。

注意:该方法只能删除开头或是结尾字符,不能删除中间部分字符。

a7=""
print(a7.strip(""))
print(a7.lstrip("")) #删除开头的字符
print(a7.rstrip("")) #删除结尾的字符
333300004444
33330000444400000
00000333300004444

9)replace()

替换某个元素

name="she is abby,abby is a very charming and very pretty girl"
print(name.replace("abby","juanjuan")) #替换全部元素
print(name.replace("abby","juanjuan",1)) #只替换第一个元素

执行结果

she is juanjuan,juanjuan is a very charming and very pretty girl
she is juanjuan,abby is a very charming and very pretty girl

10)is系列

name1="abby12345"
name2=""
name3="abcd"
print(name1.isalnum()) #字符串由字母或数字组成
print(name1.isalpha()) #字符串由字母组成
print(name1.isdigit()) #字符串由数字组成
print(name2.isdigit())
print(name3.isalpha())

执行结果

True
False
False
True
True

11)upper()  lower()

name='abby'
print(name.upper()) #小写转换为大写
name1=name.upper()
print(name1.lower()) #大写转换为小写
print(name1.islower()) #判断是否为小写
print(name1.isupper())

基础数据类型---元祖tupe

元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")

基础数据类型---列表list

列表可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

1)增

insert、append、extend

l1 = [1,'a','b',2,3,'a']
l1.insert(0,5) #按索引增加
print(l1) l1.append('aaa') #增加到最后
l1.append([1,2,3]) #增加到最后
print(l1) l1.extend(['qaw'])
l1.extend(['q','a','w'])
print(l1) l1.extend('q,a,w')
print(l1)

执行结果

[5, 1, 'a', 'b', 2, 3, 'a']
[5, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3]]
[5, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'qaw', 'q', 'a', 'w']
[5, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'qaw', 'q', 'a', 'w', 'q', ',', 'a', ',', 'w']

2)删

l2=['w',2,4,('','',''),'a','b',['a','b','c']]
l2.pop(1) #按照位置删除,有返回值
print(l2) del l2[1:4] #按照位置删除,也可以切片删除,没有返回值
print(l2) l2.remove('b') #按照元素删除
print(l2) l2.clear() #清空列表
print(l2)

执行结果

['w', 4, ('', '', ''), 'a', 'b', ['a', 'b', 'c']]
['w', 'b', ['a', 'b', 'c']]
['w', ['a', 'b', 'c']]
[]

3)改

l3=[3,'a','b',3,4,'b']
l3[1]='sddd'
print(l3)
l3[1:3]=['c','d']
print(l3)

执行结果

[3, 'sddd', 'b', 3, 4, 'b']
[3, 'c', 'd', 3, 4, 'b']

4)查

切片去查,或者循环去查。

l4=['s',2,3,['a','b'],'w']
print(l4[1])
print(l4[1:4])

执行结果

2
[2, 3, ['a', 'b']]

5)其他操作

#count()统计某个元素在列表出现的次数
l5=["a","b","a","c","y","r"]
print(l5.count("a"))
#index() 用于从列表中找出某个值第一个匹配项的索引位置
print(l5.index("a"))
#sort() 用于在原位置对列表进行排序
li=[2,3,8,7,9,0]
#正序排序
print(li.sort()) # 它没有返回值,只能打印li
print(li)
#倒叙排序
print(li.sort(reverse=True))
#reverse() 将列表中的元素反向存放
print(li.reverse()) print(li)

执行结果:

2
0
None
[0, 2, 3, 7, 8, 9]
None
[9, 8, 7, 3, 2, 0]
[9, 8, 7, 3, 2, 0]

6)列表转换为字符串

li=["a","b","a","c","y","r"]
print(''.join(li))
print('%%'.join(li))

执行结果:

abacyr
a%%b%%a%%c%%y%%r

基础数据类型---字典dict

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

  字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

 1)增

dic = {'age':20,'name':'abby','sex':'女'}
dic['heigh']=160 #添加新的key:value
print(dic) dic['age']=25 #key存在,则覆盖原value
print(dic) dic.setdefault('weight') #添加新key,value为空
print(dic) dic.setdefault('weight',50) #有键值对,不做任改变,没有才添加。
print(dic) dic.setdefault('hobby','sleep')##有键值对,不做任改变,没有才添加。
print(dic)

执行结果

{'age': 20, 'name': 'abby', 'sex': '女', 'heigh': 160}
{'age': 25, 'name': 'abby', 'sex': '女', 'heigh': 160}
{'age': 25, 'name': 'abby', 'sex': '女', 'heigh': 160, 'weight': None}
{'age': 25, 'name': 'abby', 'sex': '女', 'heigh': 160, 'weight': None}
{'age': 25, 'name': 'abby', 'sex': '女', 'heigh': 160, 'weight': None, 'hobby': 'sleep'}

2)删

dic = {'age':20,'name':'abby','sex':'女','height':160}

dic.pop('age')  #按键去删删除
print(dic) dic.pop('hobby',None) #删除的键值不存在于列表中返回值会报错,可设置返回值None dic.popitem() #随机删除字典中的元素
print(dic) del dic['name'] #删除指定键值对,如果没有会报错。
print(dic) dic.clear() #清空字典
print(dic)

执行结果:

{'name': 'abby', 'sex': '女', 'height': 160}
{'name': 'abby', 'sex': '女'}
{'sex': '女'}
{}

3)改

dic = {'age':20,'name':'abby','sex':'女','height':160}
dic['age']=16 #覆盖就更改
print(dic) dic1= {'age':20,'name':'abby'}
dic2={'sex':'女','height':160}
dic1.update(dic2)
print(dic1) # 将dic1所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中

执行结果:

{'age': 16, 'name': 'abby', 'sex': '女', 'height': 160}
{'age': 20, 'name': 'abby', 'sex': '女', 'height': 160}

4)查

dic = {'age':20,'name':'abby','sex':'女','height':160}
print(dic.keys())
print(dic.values())
print(dic["age"]) #查看某个key对应value,没有会报错
print(dic.get('name'))
print(dic.get('hobby',"不存在")) #没有可以返回设定的返回值
for key in dic:
print(key,dic[key])
 

执行结果

dict_keys(['age', 'name', 'sex', 'height'])
dict_values([20, 'abby', '女', 160])
20
abby
不存在

age 20
  name abby
  sex 女
  height 160

 

5)其他操作

items():方法用于返回字典dict(key,value)元组对的列表。

dic = {'age':20,'name':'abby','sex':'女','height':160}
print(dic.items())

执行结果

dict_items([('age', 20), ('name', 'abby'), ('sex', '女'), ('height', 160)])

字典的循环

for key in dic:
print(key,dic[key])
for key,value in dic.items():
print(key,value)

执行结果

age 20
name abby
sex 女
height 160
age 20
name abby
sex 女
height 160

其他

for循环

msg="我的名字是abby"
for i in msg:
print(i) li=['abby','lili','marry','lala']
for j in li:
print(j) dic = {'age':20,'name':'abby','sex':'女','height':160}
for k,v in dic.items():
print(k,v)

执行结果






a
b
b
y abby
lili
marry
lala age 20
name abby
sex 女
height 160

enumerate

枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

li=['abby','lili','marry','lala']
for j in enumerate(li):
print(j) for index,name in enumerate(li,1): # 起始位置默认是0,可更改
print(index,name) for index, name in enumerate(li, 100): # 起始位置默认是0,可更改
print(index, name)

执行结果

(0, 'abby')
(1, 'lili')
(2, 'marry')
(3, 'lala') 1 abby
2 lili
3 marry
4 lala 100 abby
101 lili
102 marry
103 lala

range

指定范围,生成指定数字。

for i in range(1,10): #顾头不顾尾
print(i) for i in range(1,10,2): # 步长
print(i) for i in range(10,1,-2): # 反向步长
print(i)

自学python之路(day3)的更多相关文章

  1. 自学Python之路

    自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的搭建:Pycharm及python安装详细教程    1.3  ...

  2. 自学Python之路-Python核心编程

    自学Python之路-Python核心编程 自学Python之路[第六回]:Python模块       6.1 自学Python6.1-模块简介    6.2 自学Python6.2-类.模块.包  ...

  3. 自学Python之路-Python基础&plus;模块&plus;面向对象&plus;函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  4. 自学Python之路-django

    自学Python之路-django 自学Python之路[第一回]:1.11.2 1.3

  5. 自学Python之路-Python并发编程&plus;数据库&plus;前端

    自学Python之路-Python并发编程+数据库+前端 自学Python之路[第一回]:1.11.2 1.3

  6. 自学Python之路-Python网络编程

    自学Python之路-Python网络编程 自学Python之路[第一回]:1.11.2 1.3

  7. NO&period;3:自学python之路------集合、文件操作、函数

    引言 本来计划每周完成一篇Python的自学博客,由于上一篇到这一篇遇到了过年.开学等杂事,导致托更到现在.现在又是一个新的学期,春天也越来越近了(冷到感冒).好了,闲话就说这么多.开始本周的自学Py ...

  8. NO&period;1:自学python之路------Hello world、判断、循环

    引言 人工智能如今越来越贴近生活,在这里将记录我自学python与tensorflow的过程.编程使用IDE:visual studio 2017,python版本3.6.4,tensorflow版本 ...

  9. 浅谈自学Python之路(day3)

    今天的主要内容是: 撒 文件操作 对文件操作的流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: tonghuazhen 听说白雪公主在逃跑 小红帽在担心 ...

随机推荐

  1. ASCII码表

    ASCII码表 ASCII码大致可以分作三部分組成. 第一部分是:ASCII码非打印控制字符: 第二部分是:ASCII码打印字符: 第三部分是:扩展ASCII码打印字符. 第一部分:ASCII非打印控 ...

  2. 从KRE到XRE:ASP&period;NET 5中正在消失的那些K

    前几天写了篇博客ASP.NET 5中的那些K,刚把ASP.NET 5中的那些K搞明白了些,昨天发现微软正在让那些K消失. 首先是在 KRuntime 的git日志中发现的: * Runtime ren ...

  3. Android学习1

    Activity学习(1) 只有一个Activity 进行Toast通知 Toast是一种短小的提醒,显示一段时间就会消失,试验学习,可以通过一个Button来实现. Button reg=(Butt ...

  4. iOS开发笔记系列-基础4&lpar;变量与数据类型&rpar;

    对象的初始化 对象的初始化方法一般都如下: -(id)init { self=[super init]; if(self){ ... } return self; } 这个方法首先会调用父类的初始化方 ...

  5. switch case 遇到判断type分支的写法

    一叶障目,没有接触到的知识点真是太多了...... 最近项目里需要用到一个小工具,就用winform写了一个出来,然后需要一个功能就是清空控件内容,我这个工具就用到了textbox和combobox, ...

  6. k短路&lpar;A&ast;&rpar;

    http://poj.org/problem?id=2449 #include <cstdio> #include <cstdlib> #include <cstring ...

  7. zTree重命名节点时,操作的那个dom(类似input框那个)怎么写

    <script type="text/javascript"> //tree的编辑节点的方法 ztree.editName(nodeNew[0]); /// $(&qu ...

  8. ereg&lpar;&rpar;替换为preg&lowbar;match&lpar;&rpar;,ereg&lowbar;repalce替换为preg&lowbar;replace得加斜杠

    PHP 5.3 ereg() 无法正常使用,提示“Function ereg() is deprecated Error”是因为它长ereg 函数进行了升级处理,需要像preg_match使用/ /来 ...

  9. Linux网络通信

    使用TCP协议的socket 1.网络字节序 由于在主机存储为小端序,网络传输为大端序,并且在网络中需要读取IP号和端口号,所以发送端要将小端序转为大端序,接收端将大端序转为小端序 #include ...

  10. Java菜鸟学习笔记&lpar;&rpar;--面向对象篇&lpar;七&rpar;&colon;Wrapper Class包装类

    什么是包装类? 在Java里一切都是对象,除了Java中的基本数据类型(byte,short,int,long,char,float,double,boolean)不是面向对象的,这在实际使用时存在很 ...