自学python-简介以及基本数据类型

自学python-简介以及基本数据类型

第一个helloworld程序

查看python安装版本
python -V
pycharm创建hello.py

#!/usr/bin/python
print("Hello World!")

pycharm运行hello.py

在这里插入图片描述

命令行运行hello.py

在这里插入图片描述

python简介

1.解释型语言,无编译(PHP和Perl)

2.交互式语言, >>> 后直接执行代码

3.面向对象

4.遵循 GPL(GNU General Public License)协议

GNU General Public License的要点

5.有广泛的标准库,可移植,可扩展(c或者c++),提供数据库接口,GUI编程,可嵌入(C/C++)

6.应用:Youtube,Blender(使用Python作为建模工具与GUI语言的开源3D绘图软件)。方面:云计算(OpenStack), WEB开发(框架Django),科学计算和人工智能(NumPy、SciPy、Matplotlib、Enided),系统操作和维护图形 GUI(PyQT,WXPython,TkInter)

7.运行速度较慢

8.以utf-8编码,字符串都是unicode字符串

python cmd命令

python   //进入交互式解释器中编写代码
python pyfile   //执行py脚本(需要执行权限)

python -h可显示命令行参数详情

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Ujvbvqh-1610242126985)(C:\Users\联想\AppData\Roaming\Typora\typora-user-images\image-20210106104320666.png)]

标识符

  • 第一个字符是字母下划线 _
  • 其他的部分由字母、数字和下划线组成。
  • 大小写敏感。

在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也允许

保留字

keyword模块,输出所有保留字

import keyword
print(keyword.kwlist)

在这里插入图片描述

注释

单行以#开头

多行''' '''或者""" """,或者多个#

行与缩进

使用缩进代表代码块,不用{}

indentation 行首缩进

多行语句,每行用\隔开(在[],{},()中不使用)

数字类型

整数:int(python中有Long)

布尔型:bool(例True)

浮点数:float(例3E-2)

复数:complex(例1+2j)

字符串

1.单引号和双引号使用完全相同,多行:'''或者"""

2.串首加r使\不发生转义

3.+连接字符串,*重复

4.索引:从左往右从0开始,右往左从-1

5.字符串不能改变

6.没有字符类型,为长度为1的string

7.截取字符串:变量[头下标:尾下标:步长]

空行、输入、多条语句,代码组

1.函数之间或类的方法之间用空行分隔

#!/usr/bin/python3
 
input("\n\n按下 enter 键后退出。")

3.用;隔开

4.缩进相同的一组语句构成一个代码块,我们称之代码组

print输出

# 换行输出
print( x )
# 不换行输出
print( x, end=" " )

import

将整个模块 导入,格式为: import module

从某个模块中导入某个函数,格式为: from module import function

从某个模块中导入多个函数,格式为: from module import firstfunc, secondfunc, thirdfunc

将某个模块中的全部函数导入,格式为: from module import *

变量赋值

变量不需声明,使用前赋值来创建变量。python都是引用,python有GC机制(java也使用)

实质:数据首次赋值给变量,数据保存在内存中,变量引用数据,当数据引用为0时,内存被回收

#单变量赋值
a=1
#多变量赋同值
a=b=c=1
#多变量赋不同值
a,b,c=1,2,"name"

标准数据类型

不可变数据:Number、String、Tuple;

可变数据:List、Dictionary、Set。

内置type()查看变量所指的对象类型

isinstance判断是否为某一类型,如:isinstance(a, int)

type()不会认为子类是一种父类类型。

isinstance()会认为子类是一种父类类型。

附:python2无布尔类型,python3的True and False为关键字,值仍为0和1,可以与数字相加

赋值创建,del删除引用

Number(数字)

int,float,bool,complex(实部和虚部都是float)

数值运算

//:整除,得到int,一个/得到float,%:取余,**乘方

String(字符串)

截取时,第二个index不包括在内,第三个参数可以是负数,表示逆向

List(列表)

[,,]表示,支持string,数字和list(同一个list,数据类型可不同)

+连接,*重复

可以修改

有很多内置方法

截取第三个参数:步长(如:2就是中间间隔1个),负数表示逆向

Tuple(元组)

与list类似,但不能修改,(,,)表示,数据类型可不同,index负数表示逆向

string可看作特殊的元组

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

Set(集合)

基本功能是进行成员关系测试和删除重复元素,无下标

{ }(创建空字典) 或者 set() (创建空集合必用)函数创建集合

set进行集合运算

#重复的元素被自动删除
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
print(sites)   # 输出自动去掉
# 成员测试
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')
# 集合运算
a = set('abracadabra')
b = set('alacazam')
print(a - b)     # a 和 b 的差集
print(a | b)     # a 和 b 的并集
print(a & b)     # a 和 b 的交集
print(a ^ b)     # a 和 b 中不同时存在的元素

Dictionary(字典)

无序,通过key(不可变类型)存取,是一种映射类型

print (dict[value])   # 输出键为value 的值 
print (dict.keys())   # 输出所有键
print (dict.values()) # 输出所有值

dict()创建

dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])

{x: x**2 for x in (2, 4, 6)}

dict(Runoob=1, Google=2, Taobao=3)

数据类型转换

在这里插入图片描述

python解释器

Python 解释器可不止一种哦,有 CPython、IPython、Jython、PyPy 等。

CPython 就是用 C 语言开发的了,是官方标准实现,拥有良好的生态,应用也最为广泛了。

IPython是在 CPython 的基础之上在交互式方面得到增强的解释器。

Jython是专为 Java 平台设计的 Python 解释器,它把 Python 代码编译成 Java 字节码执行。

PyPy 是 Python 语言(2.7.13和3.5.3)的一种快速、兼容的替代实现,以速度快著称。

运算符

算术运算符

+,-,*,/,%,**,//(向下取整)

比较(关系)运算符

==,!=.>,<,>=,<=

赋值运算符

=,+=.-=,*=,/=,%=,**=,//=,:=(3.8新增,可在表达式内部为变量赋值,变量可以在代码块里执行运用.)

逻辑运算符

and,or,not

位运算符

&,|,^(异或),~(取反),<<(左移动,低位补0,位数由运算符右边num决定),>>(右移动,高位补0)

成员运算符

in,not in

身份运算符

is,is not:比较两个对象的存储单元,与id()是否相同相似

运算符优先级

从高到低(第一个+,-是正负号)

在这里插入图片描述

优先级顺序为 NOT、AND、OR

数字

数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。

支持int(python3无Long类型,可用十六进制0x或者八进制0o),float(可以用科学计数法表示),complex(a+bj或者complex(a,b),a,b为float)三种类型

类型转换

类型名作为函数名,转换数字为参数:complex(x),x为实部,虚部为0

数字运算

//得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。

不同类型的数混合运算时会将整数转换为浮点数

在交互模式中,最后被输出的表达式结果被赋值给变量 _

数学函数

在这里插入图片描述

有的需要import math,而且需要math.modf(x)

随机数函数

import random

在这里插入图片描述

三角函数

在这里插入图片描述

数学常量

pi,e

字符串

通过'和"创建

字符串截取正向与负向(index负数)

str[1:4]表示[1:4),左闭右开

转义字符

\:续行符

\\,\',\",\a(响铃),\b(退格),\000(空),\n(换行),\v(纵向制表符),\t(横向制表符),\r(回车),\f(换页),\yyy(八进制数,y 代表 0~7 的字符),\xyy(十六进制数,以 \x 开头)

纵向制表符

在这里插入图片描述

字符串运算符

+(连接),*(重复输出),r/R(原始字符串),%(格式化),in, not in

字符串格式化

print ("我叫 %s 今年 %d 岁!" % ('李云龙', 35))

字符串格式化符号

在这里插入图片描述

格式化操作符辅助指令

在这里插入图片描述

format函数

基本语法是通过 {}: 来代替以前的 %

f-string

格式化字符串以 f 开头跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去

Unicode 字符串

在Python2中,普通字符串是以8位ASCII码进行存储的,Unicode字符串则存储为16位unicode字符串这样能够表示更多的字符集。语法是在字符串前面加上前缀 u

在Python3中,所有的字符串都是Unicode字符串。

字符串内建函数

序号方法及描述
1capitalize() 将字符串的第一个字符转换为大写
2center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
3count(str, beg= 0,end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
4bytes.decode(encoding=“utf-8”, errors=“strict”) Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
5encode(encoding=‘UTF-8’,errors=‘strict’) 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
6endswith(suffix, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
7expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
8find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
9index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在字符串中会报一个异常。
10isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
11isalpha() 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
12isdigit() 如果字符串只包含数字则返回 True 否则返回 False…
13islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
14isnumeric() 如果字符串中只包含数字字符,则返回 True,否则返回 False
15isspace() 如果字符串中只包含空白,则返回 True,否则返回 False.
16istitle() 如果字符串是标题化的(见 title())则返回 True,否则返回 False
17isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
18join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
19len(string) 返回字符串长度
20[ljust(width, fillchar]) 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
21lower() 转换字符串中所有大写字符为小写.
22lstrip() 截掉字符串左边的空格或指定字符。
23maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
24max(str) 返回字符串 str 中最大的字母。
25min(str) 返回字符串 str 中最小的字母。
26[replace(old, new , max]) 把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
27rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找.
28rindex( str, beg=0, end=len(string)) 类似于 index(),不过是从右边开始.
29[rjust(width,, fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
30rstrip() 删除字符串字符串末尾的空格.
31split(str="", num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
32[splitlines(keepends]) 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
33startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
34[strip(chars]) 在字符串上执行 lstrip()和 rstrip()
35swapcase() 将字符串中大写转换为小写,小写转换为大写
36title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
37translate(table, deletechars="") 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
38upper() 转换字符串中的小写字母为大写
39zfill (width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0
40isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。
常用:

count,find,index,join,len,replace,split

主要包括内容判断,修改填充字符串

列表

[,,],不需要具有相同的类型

列表都可以进行的操作包括索引,切片,加,乘,检查成员。

此外,Python 已经内置确定序列的长度以及确定最大和最小的元素的方法。

索引:正数和负数,左闭右开

列表可嵌套

脚本操作符

len,+,*,in

for x in [1, 2, 3]: print(x, end=" ")

函数方法

函数:len,max,min,list(seq)(转换为列表)

方法:list.append(obj),count(obj),extend(seq),index(obj),insert(index,obj),pop([index=-1]),remove(obj),reverse(),sort(key=None,reverse=False),clear(),copy()

元组

(,,)或者,,

空元组:=()

避免被当作运算符使用,如(50)属于int,只有一个元素时需要(tup1,)

索引和截取与列表一样

元组不能被修改,元组所指向的内存中的内容不可变,但是可以绑定到新对象。

可以连接组合:+,以及删除整个元组del

元组操作符与列表操作符一样

内置函数

len,max,min,tuple(iterable)(将可迭代系列转化为元组,比如list)

字典

{:,:,:}

可变容器,存储任意对象

key唯一,且是不可变类型,如string,数字。一个key赋值两次,后一个被记住。

访问:dict[key],没有相应key会出错

修改字典

添加或修改键值对:dict[key]=value

删除键值对:del dict[key]

清空字典:dict.clear()

删除字典:del dict

内置函数方法

函数:len,str,type

方法:radiansdict.clear(),copy()(浅拷贝),

fromkeys(创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值)

get(key, default=None)(返回指定键的值,如果键不在字典中返回 default 设置的默认值,与直接[]不同),

setdefault(key, default=None)(和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default)

items()(返回可遍历的(键, 值) 元组数组),keys()(返回一个迭代器,用list转化),update(dict2),values(与keys相似),pop(key[,default]),popitem()

集合

{},set()(创建空的时候必须用,{}是用来创建空dict)

无序,不重复

支持集合推导式,类似列表推导式

a = {x for x in 'abracadabra' if x not in 'abc'}
a={'r', 'd'}

基本操作

添加元素:add或者update(多个)

移除元素:remove(不存在会发生错误),discard(不会发生错误),pop(随机删除)

计算个数:len()

清空集合:clear()

判断:in,not in

内置函数和方法

add,clear,copy

difference,difference_update(一个是返回差集,一个是在原集上改)

discard

intersection,intersection_update

isdisjoint(是否含有相同元素),issubset(子集),issuperset,pop,remove

symmetric_difference,symmetric_difference_update

union,update

总结

跟着python菜鸟教程整理学习了一遍,这一部分主要是python的数据类型,就是创建,格式和相关函数介绍。还有一些很基础的语法知识。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sadnessdry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值