python基础二(基础数据类型)

一、数据

1 什么是数据?

  x=10,10是我们要存储的数据

2 为何数据要分不同的类型

  数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示

3 数据类型

  数字

  字符串

  列表

  元组

  字典

  集合

二、数据类型

数字int

数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以:

#bit_length() 当十进制用二进制表示时,最少使用的位数
v = 11
data = v.bit_length()
print(data)

布尔值bool

布尔值就两种:True,False。就是反应条件的正确与否。

真 1 True。

假 0 False。

字符串str

用 " " 、' ' 、''' '''或者""" """。中间包含的部分称之为字符串

    PS:即使里面写入的是数字,那么他的数据类型也是字符串

1、字符串的索引与切片。

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

a = 'ABCDEFGHIJK'
print(a[0])
print(a[3])
print(a[5])
print(a[7])

执行输出

A
D
F
H

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

a = 'ABCDEFGHIJK'
print(a[0:3])
print(a[2:5])
print(a[0:]) #默认到最后
print(a[0:-1]) #-1就是最后一个
print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长

执行输出

ABC
CDE
ABCDEFGHIJK
ABCDEFGHIJ
ACE
FDB

2、字符串常用方法。

#captalize,swapcase,title
name = "ximenchunxue"
print(name.capitalize()) #首字母大写
print(name.swapcase()) #大小写翻转
msg='egon say hi'
print(msg.title()) #每个单词的首字母大写

执行输出

Ximenchunxue
XIMENCHUNXUE
Egon Say Hi

# 内容居中,总长度,空白处填充
name = "ximenchunxue"
ret2 = name.center(20,"*")
print(ret2)

执行输出

****ximenchunxue****

#数字符串中的元素出现的个数。
name = "ximenchunxue"
print(name[0:10])
ret3 = name.count("n",0,10) # 可切片
print(ret3)

执行输出

ximenchunx
2

解释:

0,10表示从左至右取出10个字符串,那么结果为ximenchunx,字母n在里面出现了2次

a2 = "hqw\t1"
'''
expandtabs() 方法把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。
默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,
如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
'''
ret4 = a2.expandtabs()
print(ret4)

执行输出

hqw     1

a4 = "dkfjdkfasf54"
#startswith 判断是否以...开头
#endswith 判断是否以...结尾
ret4 = a4.endswith('jdk',3,6) # 顾头不顾尾
print(ret4) # 返回的是布尔值
ret5 = a4.startswith("kfj",1,4)
print(ret5)

执行输出

True
True

#寻找字符串中的元素是否存在
a4 = "dkfjdkfasf54"
ret6 = a4.find("fjdk",1,6)
print(ret6) # 返回的找到的元素的索引,如果找不到返回-1

执行输出

2

a4 = "dkfjdkfasf54"
ret61 = a4.index("fjdk",4,6)
print(ret61) # 返回的找到的元素的索引,找不到报错。

执行输出以下结果,报错了

Traceback (most recent call last):
File "E:/python_script/day1/test.py", line 3, in <module>
ret61 = a4.index("fjdk",4,6)
ValueError: substring not found

#split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
ret9 = 'title,Tilte,atre,'.split('t')
print(ret9)
ret91 = 'title,Tilte,atre,'.rsplit('t',1)
print(ret91)

执行输出

['', 'i', 'le,Til', 'e,a', 're,']
['title,Tilte,a', 're,']

#format的三种玩法 格式化输出
res='{} {} {}'.format('egon',18,'male')
print(res)
res='{1} {0} {1}'.format('egon',18,'male')
print(res)
res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
print(res)

执行输出

egon 18 male
18 egon 18
egon 18 male

#strip
name='*egon**'
print(name.strip('*'))
print(name.lstrip('*'))
print(name.rstrip('*'))

执行输出

egon
egon**
*egon

#replace
name='alex say :i have one tesla,my name is alex'
print(name.replace('alex','SB',1))

执行输出

SB say :i have one tesla,my name is alex

#####is系列
name='jinxin123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成

执行输出

True
False
False

元祖tupe

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

列表list
列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

li = ['alex',123,True,(1,2,3,'wusir'),[1,2,3,'小明',],{'name':'alex'}]

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

li = [1,'a','b',2,3,'a']
li.insert(0,55) #按照索引去增加
print(li) li.append('aaa') #增加到最后
li.append([1,2,3]) #增加到最后
print(li) li.extend(['q,a,w']) #迭代的去增
li.extend(['q,a,w','aaa'])
li.extend('a')
li.extend('abc')
li.extend('a,b,c')
print(li)

执行输出

[55, 1, 'a', 'b', 2, 3, 'a']
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3]]
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'q,a,w', 'q,a,w', 'aaa', 'a', 'a', 'b', 'c', 'a', ',', 'b', ',', 'c']

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

执行输出

a
[1, 3, 'a']
[1, 3]

li = [1,'a','b',2,3,'a']
li[1] = 'dfasdfas'
print(li)
li[1:3] = ['a','b']
print(li)

执行输出

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

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

其他操作

count(数)(方法统计某个元素在列表中出现的次数)。

a = ["q","w","q","r","t","y"]
print(a.count("q"))

执行输出

2

index(方法用于从列表中找出某个值第一个匹配项的索引位置)

a = ["q","w","r","t","y"]
print(a.index("r"))

执行输出

2

sort (方法用于在原位置对列表进行排序)。

reverse (方法将列表中的元素反向存放)。

a = [2,1,3,4,5]
a.sort()# 他没有返回值,所以只能打印a
print(a)
a.reverse()#他也没有返回值,所以只能打印a
print(a)

执行输出

[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]

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

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

dic = {'zhang':'k'}
dic['li'] = ["a","b","c"]
print(dic)
#setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。
dic.setdefault('k','v')
print(dic) # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
dic.setdefault('k','v1') # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
print(dic)

执行输出

{'li': ['a', 'b', 'c'], 'zhang': 'k'}
{'k': 'v', 'li': ['a', 'b', 'c'], 'zhang': 'k'}
{'k': 'v', 'li': ['a', 'b', 'c'], 'zhang': 'k'}

dic = {'name':'zhang','age':23}
dic_pop = dic.pop("a",'无key默认返回值') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值
print(dic_pop)
del dic["name"] # 没有返回值。
print(dic) dic_pop1 = dic.popitem() # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
print(dic_pop1) # ('name','jin') dic_clear = dic.clear() # 清空字典
print(dic,dic_clear) # {} None

执行输出

无key默认返回值
{'age': 23}
('age', 23)
{} None

dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
print(dic2)

执行输出

{'age': 18, 'name': 'jin', 'weight': 75, 'sex': 'male'}

dic = {"name":"jin","age":18,"sex":"male"}
value1 = dic["name"] # 没有会报错
print(value1) value2 = dic.get("djffdsafg","默认返回值") # 没有可以返回设定的返回值
print(value2)

执行输出

jin
默认返回值

其他操作

dic = {"name":"jin","age":18,"sex":"male"}
item = dic.items()
print(item,type(item)) # dict_items([('name', 'jin'), ('sex', 'male'), ('age', 18)]) <class 'dict_items'>
#这个类型就是dict_items类型,可迭代的 keys = dic.keys()
print(keys,type(keys)) # dict_keys(['sex', 'age', 'name']) <class 'dict_keys'> values = dic.values()
print(values,type(values)) # dict_values(['male', 18, 'jin']) <class 'dict_values'> 同上

执行输出

dict_items([('sex', 'male'), ('age', 18), ('name', 'jin')]) <class 'dict_items'>
dict_keys(['sex', 'age', 'name']) <class 'dict_keys'>
dict_values(['male', 18, 'jin']) <class 'dict_values'>

字典的循环

dic = {"name":"jin","age":18,"sex":"male"}
for key in dic:
print(key)
for item in dic.items():
print(item)
for key,value in dic.items():
print(key,value)

执行输出

age
sex
name
('age', 18)
('sex', 'male')
('name', 'jin')
age 18
sex male
name jin

三,其他(for,enumerate,range)
for循环:用户按照顺序循环可迭代对象的内容。

msg = '我是最好的'
for item in msg:
print(item) li = ['alex','银角','女神','egon','太白']
for i in li:
print(i) dic = {'name':'太白','age':18,'sex':'man'}
for k,v in dic.items():
print(k,v)

执行输出:






alex
银角
女神
egon
太白
name 太白
age 18
sex man

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

li = ['alex','银角','女神','egon','太白']
for i in enumerate(li):
print(i)
for index,name in enumerate(li,1):
print(index,name)
for index, name in enumerate(li, 100): # 起始位置默认是0,可更改
print(index, name)

执行输出:

(0, 'alex')
(1, '银角')
(2, '女神')
(3, 'egon')
(4, '太白')
1 alex
2 银角
3 女神
4 egon
5 太白
100 alex
101 银角
102 女神
103 egon
104 太白

range:指定范围,生成指定数字

for i in range(1,10):
print(i)
print('======')
for i in range(1,10,2): # 步长
print(i)
print('++++++')
for i in range(10,1,-2): # 反向步长
print(i)

执行输出

1
2
3
4
5
6
7
8
9
======
1
3
5
7
9
++++++
10
8
6
4
2

python 全栈开发,Day2的更多相关文章

  1. python全栈开发-Day2 布尔、流程控制、循环

    python全栈开发-Day2 布尔 流程控制 循环   一.布尔 1.概述 #布尔值,一个True一个False #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人 ...

  2. Python全栈开发【面向对象进阶】

    Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...

  3. Python全栈开发【面向对象】

    Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...

  4. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  5. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  6. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  7. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  8. Python全栈开发【基础一】

    Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...

  9. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  10. Python全栈开发

    Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...

随机推荐

  1. HDU - 1175 bfs

    思路:d[x][y][z]表示以z方向走到(x, y)的转弯次数. 如果用优先队列会超时,因为加入队列的节点太多,无用的节点不能及时出队,会造成MLE,用单调队列即可. AC代码 #include & ...

  2. win10 , JAVA安装 环境搭建

    一.关于下载地址及方式: 1.百度搜索JDK,进入下载官网,具体网址如下: click me!!! 2.根据你电脑的不同系统选择对应的下载,当然首先你要点击Accept License Agreeme ...

  3. select, poll, epoll的实现分析

    select, poll, epoll都是Linux上的IO多路复用机制.知其然知其所以然,为了更好地理解其底层实现,这几天我阅读了这三个系统调用的源码. 以下源代码摘自Linux4.4.0内核. 预 ...

  4. C语言中的sizeof函数总结

    sizeof函数的结果: 变量:变量所占的字节数. ; printf( 数组:数组所占的字节数. ,,,,}; ] = {,,,,}; printf("size_arr1=%d\n" ...

  5. ul+jquery自定义下拉选择框

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. R︱Linux+Rstudio Server尝鲜笔记(打造最佳Rstudio体验+报错的解决方案)

    Rstudio Server 是Rstudio开发的基于R语言的网页版(只能在Linux),你在手机上都可以运行R,还是挺方便的.就是配置起来有点麻烦.      官方下载链接:https://www ...

  7. HighCharts之气泡图

    HighCharts之气泡图 1.HighCharts之气泡图源码 bubble.html: <!DOCTYPE html> <html> <head> <m ...

  8. Java中获取文件路径

    Java中获取文件路径 1.实例说明 (1)得到 ClassPath的绝对URI路径 Thread.currentThread().getContextClassLoader().getResourc ...

  9. freemarker报错之七

    1.错误描述 五月 30, 2014 11:33:57 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...

  10. Flex上传文件报“Error #2038”

    1.错误描述 ioerror: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 t ...