一、强类型语言与弱类型语言,解释型语言与编译型语言
1、强类型语言
强类型语言是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。例如:java、.NET、C++
2、弱类型语言
某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。例如:vb 、PHP、javascript、Python
3、编译型语言
程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。例如: C 、C++、Objective-C、Pascal
4、解释型语言
程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。在运行程序的时候才翻译,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨平台性好。例如:Java、C#、PHP、JavaScript、VBScript、Perl、Python、Ruby、MATLAB
二、Python注释
1、# 单行注释
例 # 你好
2、''' 或者""" 用于多行注释
例
'''
import os
hello world
'''
或
"""
import os
hello world
"""
三、Python代码规范
1、每个 import 语句一次只导入一个模块
import os
import sys #正确
import os,sys #错误
2、不要在行尾添加分号
import os; #错误
import os #正确
3、每行建议不超过 80 个字符,如果超过,建议使用小括号将多行内容隐式的连接起来
s=("C语言中文网是中国领先的C语言程序设计专业网站,"
"提供C语言入门经典教程、C语言编译器、C语言函数手册等。")
4、在运算符两侧、函数参数之间以及逗号两侧,建议使用空格进行分隔
四、Python标识符
标识符就是一个名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。
1、标识符是由字符、下划线和数字组成,但第一个字符不能是数字。
2、标识符不能和 Python 中的保留字相同。
3、标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
4、标识符中的字母是严格区分大小写的
5、以下划线开头的标识符有特殊含义,非特定场景需要,应避免使用以下划线开头的标识符 例如:
1)、以单下划线开头的标识符(如_width),表示不能直接访问的类属性,其 无法通过 from...import 的方式导入;
2)、以双下划线开头的标识符(如 __add)表示类的私有成员;
3)、以双下划线作为开头和结尾的标识符(如_init_),是专用标识符
五、Python保留字
保留字是 Python 语言中一些已经被赋予特定意义的单词,不能用这些保留字作为标识符给变量、函数、类、模板以及其他对象命名。
六、Python内置函数
七、Python变量
1、变量无须声明即可直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串
2、变量类型:数值型、字符型、字节串(bytes)、布尔型
1)、数值型包括整数型、浮点型和复数型
a.整数型包括正整数、0 和负整数 整数型有4种表示方式
a1.十进制形式
a2.二进制形式以 0b 或 0B 开头。例如:0b101或0B101 对应十进制数是 5;
a3.八进制形式以 0o 或 0O 开头
a4.十六进制形式:由 0~9 以及 A~F(或 a~f)组成,以 0x 或 0X 开头,
b.浮点型 有两种表示方式
b1.十进制形式:这种形式就是平常简单的浮点数,例如 5.12、512.0、0.512
b2.科学计数形式:例如 5.12e2或5.12E2(即 5.12×102)
c.复数型 python可以支持复数,复数的虚部用 j 或 J 来表示
2)、字符型
a.字符串必须使用引号括起来,可以使用单引号或者双引号,要成对出现。字符串中的内容几乎可以包含任何字符,英文字符也行,中文字符也行
如果字符串内容本身包含了单引号或双引号,此时就需要进行特殊处理:
a1.使用不同的引号将字符串括起来。
例如:a = "I'm a coder"
a2.对引号进行转义,用“\”转义
例如:a = '"we are scared,Let\'s hide in the shade",says the bird'
b.长字符串:字符串包含(可以有单引号和双引号)很多东西,在开始和结束处加三个英文单引号
例如:s = '''"Let's go fishing", said Mary.
"OK, Let's go", said her brother.
they walked to a lake'''
c.原始字符串
当字符串中包含反斜线时,就需要使用转义字符 \ 对字符串中包含的每个 '\' 进行转义 ;也可以用"r"开头加单引号
例如:s1 = r'G:\publish\codes\02\2.4'
3)、字节串(bytes)
bytes 对象只负责以字节(二进制格式)序列来记录数据,至于这些数据到底表示什么内容,完全由程序决定。如果采用合适的字符集,字符串可以转换成字节串;反过来,字节串也可以恢复成对应的字符串。字节串和 字符串除操作的数据单元不同之外,它们支持的所有方法都基本相同,字节串也是不可变序列。
一个字符串转换成字节串对象,有如下三种方式:
a.如果字符串内容都是 ASCII 字符,则可以通过直接在字符串之前添加 b来构建字节串值。例:d = b'hello'
b.调用 bytes() 函数(其实是 bytes 的构造方法)将字符串按指定字符集转换成字节串,如果不指定字符集,默认使用 UTF-8 字符集。例:d = bytes('我爱Python',encoding='utf-8')
c.调用字符串本身的 encode() 方法将字符串按指定字符集转换成字节串,如果不指定字符集,默认使用 UTF-8 字符集。例:d = "学习Python很有趣".encode('utf-8')
4)、布尔型
即表示真假 真用True表示和假用 False 表示 ,True 相当于整数值 1,False 相当于整数值 0
例
5)、各种数据类型相互转换--使用各种转换函数
注意,在使用数据类型转换函数时,提供给它的数据必须是有意义的。例如,int(我们) 函数无法将一个非数字字符串转换成整数
八、常用函数
1、len()函数--获取字符串长度或字节数
语法格式:len(string)
1)、获取字符串长度
例:获取字符串“a”的长度 见下图
2)、获取字节数
使用 encode() 方法,查看字节数 ,默认是utf-8
例如:
2、input()函数--获取用户输入的字符串
input() 函数用于向用户生成一条提示,然后获取用户输入的内容。由于 input() 函数总会将用户输入的内容放入字符串中,因此用户可以输入任何内容,input() 函数总是返回一个字符串。例如
3、print()函数--用于打印输出
1)、语法格式:
print (value,...,sep='',end='\n',file=sys.stdout,flush=False)
value--参数可以接受任意一个或多个变量或值
sep--用来间隔多个对象,默认值是一个空格,可改成“|”等等
end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串
file -- 指定 print() 函数的输出目标,file 参数的默认值为 sys.stdout,表示标准输出,也就是屏幕,因此 print() 函数默认输出到屏幕。实际上,完全可以通过改变该参数让 print() 函数输出到特定文件中
flush=False: 该参数主要是刷新, 默认False,不刷新,Ture时刷新
例:
f = open("demo.txt","w") #打开文件以便写入
print('hello',end='\t',file=f)
print('world',file=f)
f.close()
2)、用print()函数--格式化输出字符串
例如:
\>>>user = "Charli"
\>>>age = 8
\>>># 格式化字符串有两个占位符,第三部分提供2个变量
\>>>print("%s is a %s years old boy" % (user , age))
输出结果为
Charli is a 8 years old boy
其中%s分别调用user和age两个变量
3)、转义字符
九、python运算符
1、算术运算符
2、赋值运算符
3、位运算符
4、比较运算符
5、逻辑运算符
6、三目运算符
三目运算符的规则是:先对逻辑表达式 expression 求值,如果逻辑表达式返回 True,则执行并返回 True_statements 的值;如果逻辑表达式返回 False,则执行并返回 False_statements 的值。
语法格式:True_statements if expression else False_statements
例如:
a = 5
b = 3
print("a大于b") if a > b else print("a不大于b")
7、各类运算符优先级
十、列表、元组、集合和字典
1、序列
1)、序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。
2)、序列类型包括字符串、列表、元组、集合和字典,集合和字典不支持索引、切片、相加和相乘操作。
3)、序列索引
序列中,每个元素都有属于自己的编号(索引)。
a.从起始元素开始,索引值从 0 开始递增,此类索引是从左向右计数
b.Python 还支持索引值是负数,此类索引是从右向左计数,从最后一个元素开始计数
4)、序列切片
切片操作是访问序列中元素的另一种方法,它可以访问一定范围内的元素,通过切片操作,可以生成一个新的序列。
语法格式:
sname[start : end : step]
参数的含义分别是:
sname:表示序列的名称;
start:表示切片的开始索引位置(包括该位置),此参数也可以不指定,会默认为 0,也就是从序列的开头进行切片;
end:表示切片的结束索引位置(不包括该位置),如果不指定,则默认为序列的长度;
step:表示在切片过程中,隔几个存储位置(包含当前位置)取一次元素,也就是说,如果 step 的值大于 1,则在进行切片去序列元素时,会“跳跃式”的取元素。如果省略设置 step 的值,则最后一个冒号就可以省略。
例
a = "我爱你,中国"
print(a[1:3]) #爱你
print(a[2]) #你
print(a[-2:]) #中国
print(a[::2]) #我你中
5)、序列相加
序列相加表示两种类型相同的序列使用“+”运算符做相加操作,它会将两个序列进行连接,但不会去除重复的元素。
例
a = '您好,'
b = 'Tom!'
print(a + b)
6)、序列相乘
数字 n 乘以一个序列会生成新的序列,其内容为原来序列被重复 n 次的结果。
例
a='你好'
print(a*3)
7)、查看某个元素是否属于序列
可以使用 in 关键字检查某元素是否为序列的成员
语法格式为:value in sequence
value 表示要检查的元素,sequence 表示指定的序列。
正确返回‘False’,错误返回‘True’
例:
a = "我爱你,中国"
print('好' in a)
print('我' in a)
8)、和序列相关的内置函数
2、列表(list)
1)、列表简介
列表可以存储整数、实数、字符串、列表、元组等任何类型的数据;列表中可以同时包含字符串、整数、列表、浮点数这些数据类型,通常不会把不同数据类型的放在同一列表中;列表会将所有元素都放在一对中括号 [] 中,相邻元素之间用逗号分隔,如[element1,element2,element3,...,elementn]
2)、列表新建
a1、 使用 “=” 运算符直接创建列表
语法格式:listname = [element1 , element2 , element3 , ... , elementn]
a2、使用list()函数,可以将元组、区间(range)等对象转换为列表
例如:
a_tuple = ('crazyit', 20, -1.2)
a_list = list(a_tuple)
print(a_list)
b、访问列表
使用 print() 函数
例:print(a_list)
print(a_list[1:3])
c、删除列表
列表不使用,可以使用 del 语句将其删除。
语法格式:del listname
3)、列表添加元素
a、append() 函数
append() 方法用于在列表的末尾追加元素; append() 方法传递列表或者元组,此方法也只会将其视为一个元素
语法格式:listname.append(o)
listname 指的是要添加元素的列表;o 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等
例如
b、extend()函数
extend()方法用于在列表的末尾追加元素;可以一次添加多个元素
语法格式:listname.extend(o)
listname 指的是要添加元素的列表;o表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等
例如
c、insert()函数
insert()插入元素到某个位置;和 append() 方法一样,无论插入的对象是列表还是元组,都只会将其整体视为一个元素。
语法格式:listname.insert(index , o)
listname 指的是要添加元素的列表;index 参数指的是将元素插入到列表中指定位置处的索引前;o 表示要添加的元素
例如
4)、列表删除元素
a、根据索引值删除元素
语法格式:del a_list[索引值]
del 关键字 a_list 列表名
例如
b、根据元素值删除元素
使用remove()函数 remove() 方法会删除第一个和指定值相同的元素,如果找不到该元素,该方法将会引发 ValueError 错误。
例如
c、删除列表所有元素
5)、列表修改元素
6)、
3、元祖(tuple)
4、字典(dict)
5、集合(set)
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。