https://www.runoob.com/python3/python3-data-type.html
一、下载
https://www.python.org/downloads/mac-osx/
二、基础语法和数据类型
1、基本数据类型
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
string、list 和 tuple 都属于 sequence(序列)
1⃣️Number(数字)
Python3 支持 int、float、bool、complex(复数)
#基本数据类型
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "runoob" # 字符串
print (counter)
print (miles)
print (name)
print (counter)
print (miles)
print (name)
a = b = c = 1
print('a:',a)
print('b:',b)
print('c:',c)
print(a+b+c)
a, b, c = 1, 2, "runoob"
print('a:',a)
print('b:',b)
print('c:',c)
两个函数
type() 函数可以用来查询变量所指的对象类型
isinstance()来判断是否为某一种类型
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "runoob" # 字符串
print(type(counter),type(miles),type(name)) //查询变量的类型
print(isinstance(counter,int)) //判断是否为int
print(isinstance(counter,float)) //判断是否为float
bol_1 = True #布尔
bol_2 = False #布尔
rint(type(bol_1),type(bol_2))
print(bol_1)
print(bol_2)
print(bol_1+bol_2) #true代表1,false代表0
数值运算
>>> 5 + 4 # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7 # 乘法
21
>>> 2 / 4 # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32
2⃣️String(字符串)不可变(immutable)
是不可变结构(immutable)
Python中的字符串用单引号 ' 或双引号 " 括起来,
同时使用反斜杠 \ 转义特殊字符;+r可防止转义
## 单引号
name = 'name'
## 双引号
name = "hello"
##\\ 表示\
索引:索引值以 0 为开始值,-1 为从末尾的开始位置
截取 :变量[头下标:尾下标:步长]
#!/usr/bin/python3
str='0123456'
print('输出字符串\'0123456\'\t'+str)
print('输出字符串第一个字符''\t'+str[0])
print('输出字符串的最后一个字符''\t'+str[-1])
print('输出字符串的倒数第二个字符''\t'+str[-2])
print('输出从第一个开始到第五个字符''\t'+str[0:5])
print('输出第一个到第五个,每隔2个字符''\t'+str[0:5:2])
print('输出字符串的第一个到倒数第二个字符''\t'+str[0:-1])
print('输出第一个到第五个,每隔2个字符''\t'+str[0:-1:2])
print('r表示转义‘+'r'\n')
print('\n')
3⃣️List(列表)可变(mutable)
放置任意数据类型的有序集合,动态可变(mutable)
支持索引,切片,可修改
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
变量[头下标:尾下标]
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']
print (list) # 输出完整列表
print (list[0]) # 输出列表第一个元素
print (list[1:3]) # 从第二个开始输出到第三个元素
print (list[2:]) # 输出从第三个元素开始的所有元素
print (tinylist * 2) # 输出两次列表
print (list + tinylist) # 连接列表
倒序输出(反转)
reverse():是python中列表的一个内置方法,其实返回的是None,只有在print()的时候才看出反转的效果。
reversed():是python自带的一个方法,返回的是一个把序列值经过反转之后的迭代器。
bb = [1,3,5,7] /# 列表的反转
print(list(reversed(bb)))
aa = (1, 2, 3) #元祖的反转
print(tuple(reversed(aa)))
ss = "qwer1234"#字符串的反转
print(''.join(reversed(ss)))
字符串的串联
join():python中 字符串 自带的一个方法,S.join(可迭代) - > str返回一个字符串,该字符串是字符串的串联迭代。 元素之间的分隔符是S。
tt = ["12", "345", "67"]/#可迭代对象为列表
cc = ''.join(tt)
ee = '?'.join(tt)
print(cc)
print(ee)
ss = ("qw", "er", "fg")/#可迭代对象为元祖
dd = ''.join(ss)
gg = '&'.join(ss)
print(dd)
print(gg)
分隔字符串
split():通过指定分隔符对字符串进行切片为列表,如果参数 num 有指定值,则分隔 num+1 个子字符串。str.split(str="", num=string.count(str)).
str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
print (str.split())
print (str.split(' ', 1 ))
txt = "Google#Runoob#Taobao#Facebook"
# 第二个参数为 1,返回两个参数列表
x = txt.split('#', 1)
print (x)
字符串的倒序输出
inputWords = input("请输入\n")#输入字符串
x = inputWords.split()#将字符串切片成列表
y = x[-1::-1]#将列表反转
print(y)
outWords = "".join(y)#将反转的列表拼接成字符串
print(outWords)#倒序输出字符串
4⃣️Tuple(元组)
放置任意数据类型的有序集合,静态不可变(immutable)
支持索引、切片但不可修改
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 )
tinytuple = (123, 'runoob')
print (tuple) # 输出完整元组
print (tuple[0]) # 输出元组的第一个元素
print (tuple[1:3]) # 输出从第二个元素开始到第三个元素
print (tuple[2:]) # 输出从第三个元素开始的所有元素
print (tinytuple * 2) # 输出两次元组
print (tuple + tinytuple) # 连接元组
tup[0] = 11 # 修改元组元素的操作是非法的
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
5⃣️Set(集合)
是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
print(sites) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Runoob' in sites :
print('Runoob 在集合中')
else :
print('Runoob 不在集合中')
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
6⃣️Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2] = "2 - 菜鸟工具"
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
print (dict['one']) # 输出键为 'one' 的值
print (dict[2]) # 输出键为 2 的值
print (tinydict) # 输出完整的字典
print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值
构造函数 dict() 可以直接从键值对序列中构建字典如下:
三、输入输出
name = input("input your name:")
print(name)
## 支持占位符
key = 'key'
print('name: {}', key)
四、执行结构
五、函数模块
六、一些方法和函数
1、str.format()格式化
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
➡️网站名:菜鸟教程, 地址 www.runoob.com
2、str.strip()截掉首尾指定字符
用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
str = "00000003210Runoob01230000000";
print str.strip( '0' ); # 去除首尾字符 0
➡️3210Runoob0123
str2 = " Runoob "; # 去除首尾空格
print str2.strip();
➡️Runoob
str = "123abcrunoob321"
print (str.strip( '12' )) # 字符序列为 12
➡️3abcrunoob3
3、str.lstrip() 截掉左边指定字符
方法用于截掉字符串左边的空格或指定字符
4、str.split()分隔字符串
通过指定分隔符对字符串进行切片为列表,如果参数 num 有指定值,则分隔
str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
print (str.split())
print (str.split(' ', 1 ))
txt = "Google#Runoob#Taobao#Facebook"
# 第二个参数为 1,返回两个参数列表
x = txt.split('#', 1)
print (x)
5、str.join()串联字符串
tt = ["12", "345", "67"]/#可迭代对象为列表
cc = ''.join(tt)
ee = '?'.join(tt)
print(cc)
print(ee)
ss = ("qw", "er", "fg")/#可迭代对象为元祖
dd = ''.join(ss)
gg = '&'.join(ss)
print(dd)
print(gg)
6、str.count()统计字符串里某个字符出现的次数
str.count(sub, start= 0,end=len(string))
str = "this is string example....wow!!!";
sub = "i";
print "str.count(sub, 4, 40) : ", str.count(sub, 4, 40)
sub = "wow";
print "str.count(sub) : ", str.count(sub)
➡️str.count(sub, 4, 40) : 2
➡️str.count(sub) : 1
7、list.index()
用于从列表中找出某个值第一个匹配项的索引位置
list.index(x[, start[, end]])
aList = [123, 'xyz', 'runoob', 'abc']
print "xyz 索引位置: ", aList.index( 'xyz' )
print "runoob 索引位置 : ", aList.index( 'runoob', 1, 3 )
➡️xyz 索引位置: 1
➡️runoob 索引位置 : 2
8、List sort()排序
list.sort( key=None, reverse=False)升序
函数sort()会默认地按升序排列
list.sort() 不会返回对象,会改变原有的list
l = [1, 2, 3, 7, 9]
l.sort()
print(l.sort())
print(l)
list =['a','cc','eeee','ff']
list.sort()#升序
list.sort(reverse=True)#降序
print(list)
##9、
def compare(x):
return len(x)
list.sort(key=compare) #按照字符串长度升序排列
print(list)
sorted与sort区别
前者是内置函数,后者是列表、字典的方法;前者返回一个新列表
tup= (3.2,8,5)
print(sorted(tup))
print(tup) #原值不会改变
print(tuple(reversed(tup))) #需要遍历才能读取
print(tup) #原值不会改变
l = [1, 2, 3, 7, 7,9,33]
print(l.reverse()) #实际返回是NONE
print(l)#原值发生改变
print(l.sort()) #实际返回是NONE
print(l) #原值发生改变
9、reversed与reverse区别
前者是内置函数,后者是列表、字典的方法。前者返回一个新列表
>>> i = [55, 12, 23, 45, 18, 26]
>>> for n in reversed(i):
print(n, end = ' ')
26 18 45 23 12 55
>>> i
[55, 12, 23, 45, 18, 26]
>>> i.reverse()
>>> i
[26, 18, 45, 23, 12, 55]
>>>