基础数据类型---字符串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基础+模块+面向对象+函数

    自学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并发编程+数据库+前端

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

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

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

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

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

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

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

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

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

随机推荐

  1. C++_day06_运算符重载_智能指针

    1.只有函数运算符可以带缺省函数,其他运算符函数主要由操作符个数确定 2.解引用运算符和指针运算符 示例代码: #include <iostream> using namespace st ...

  2. webpack学习笔记 (二) html-webpack-plugin使用

    这个插件的两个作用: 为html文件中引入的外部资源如script.link动态添加每次compile后的hash,防止引用缓存的外部文件问题 可以生成创建html入口文件,比如单页面可以生成一个ht ...

  3. 【安卓基础】ImageView与EditText联动实现隐藏与显示密码

    项目中经常会有这样的需求,在密码输入框的右边有一个小图标,点击就切换显示和隐藏密码. 其实这里需求实现起来是比较容易的,主要考虑是复用问题,因为登陆.注册.修改密码界面都会有这样的情景,如果每个界面都 ...

  4. Lab 10-2

    The file for this lab is Lab10-02.exe. Questions and Short Answers Does this program create any file ...

  5. linux软件管理之python包管理

    Python包管理 ====================================================================================python ...

  6. JavaScript判断苹果 iPhone X Series 机型

    原文链接: JavaScript 判断 iPhone X Series 机型 现状 iPhone X 底部是需要预留 34px 的安全距离,需要在代码中进行兼容. 现状对于 iPhone X 的判断基 ...

  7. There are multiple modules with names that only differ in casing. 黄色warning

    There are multiple modules with names that only differ in casing.有多个模块同名仅大小写不同This can lead to unexp ...

  8. springboot国际化

    Session方式的国际化/** * @descripte 请求中如果有{@Param lang},则按照lang的格式国际化 * @descripte 请求中如果无{@Param lang},但se ...

  9. 在公网上的Linux,我的一些配置分享

    前言 去年的时候,有一篇介绍在vultr上搭建ss服务器的文章,由于某些众所周知的原因,被阿里云删除. 后来有段时间使用vps,配合<鸟哥私房菜>,学习实操linux.当时我以为只要roo ...

  10. C++学习笔记(一):C++基础知识

    一.C++基础知识 新的数据类型 C语言中的数据类型 C++中新的数据类型 思考:新的数据类型有什么好处?请看下面的代码: 可以见得:新的类型使整个程序更加简洁,程序变得易读易懂!这个就是bool类型 ...