自学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)协议
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))
字符串格式化符号

格式化操作符辅助指令

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

被折叠的 条评论
为什么被折叠?



