Python下载安装(mac)

https://www.runoob.com/python3/python3-data-type.html

一、下载

https://www.python.org/downloads/mac-osx/

image.png

二、基础语法和数据类型

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)
image.png

两个函数

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
image.png

数值运算

>>> 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')
image.png

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) # 连接列表

image.png

倒序输出(反转)

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)))
image.png

字符串的串联

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)
image.png

分隔字符串

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)
image.png

字符串的倒序输出

inputWords  =  input("请输入\n")#输入字符串
x  =  inputWords.split()#将字符串切片成列表
y  =  x[-1::-1]#将列表反转
print(y)
outWords  = "".join(y)#将反转的列表拼接成字符串
print(outWords)#倒序输出字符串

image.png

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  # 修改元组元素的操作是非法的
image.png

虽然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 中不同时存在的元素
image.png

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()) # 输出所有值
image.png

构造函数 dict() 可以直接从键值对序列中构建字典如下:


image.png

三、输入输出

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)
image.png

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]
>>>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容