Python也是一个类似于Java面向对象的编程语言
优点
简单、易学
免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
可移植性、
解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。
运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。
在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。
面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。
可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。
缺点
单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。
独特的语法
这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。
运行速度慢:这里是指与C和C++相比。
#默认情况下 Python3的源码文件以UTF-8编码,所有字符串都是unicode字符串
#以下是定义源文件使用UTF-8编码
# -*- coding: UTF-8 -*-
#标识符
#1.第一个字符必须是字母或者下划线
#2.标识符的其他部分由字母、数字和下划线组成
#3.标识符区分大小写
#python的注释分为 #号、'''和"""
'''
多行注释
'''
"""
多行注释
"""
#行与缩进
#Python使用缩进来表示代码块,不需要{}
if True:
print("True")
else:
print("False")
# 结果为 True
# if True:
# print("True")
# else:
# print("False")
# print(9) #此行代码缩进不一致,运行会报错
#单独一句代码必须顶格书写 不然会报错
#多行语句
total="123"+\
"456"
print(total) # 输出:123456
#多行语句用\实现连接
#数字类型(Number)
#Python中数字有四种类型:整数、布尔型、浮点型和复数
#int 整数 没有长度限制
#bool 布尔型 True or False
#float 浮点型 如1.23、3E-2
#complex 复数 如1+2j、1.1+2.2j
#字符串(Stirng)
#Python中单引号和双引号使用一样
#可用三引号"""或'''可指定一个多行字符串,其输出格式和输入格式一样
#转义符\,在字符串前面加r可以使\不发生转义 如r"\"999" 输出为 \"999
#按字面意义的级联字符串 如"123""999" 会自动转成123999,也可用+连接在一起
#字符串的两种索引方式,从左往右以0开始,从右往左以-1开始
#截取语法:变量[起始下标:尾下标]
#声明变量
#格式 变量名=变量值
a="湖南"
print(a) #结果 湖南
print(type(a)) # type()查看类型 <class 'str'>
b='长沙'
print(b) #结果 长沙
print(type(b)) # type()查看类型 <class 'str'>
# \转义
c="\"999"
print(c) #结果 "999
# \n 换行
d="000\n123"
print(d)
# \t 制表
e="abcd\tefg"
print(e) #结果 abcd efg
# r 不需要转义
f=r"\"你好"
print(f) #结果 \"你好
#整数
num=1123123123123333333333131212113
print(num) #结果1123123123123333333333131212113
print(type(num)) # type()查看类型 <class 'int'>
n=1_2_3
print(n) #结果123
print(type(n)) # type()查看类型 <class 'int'>
#进制
#十进制不能以0开头
#二进制以0b开头
#八进制以0o开头
#十六进制以0x开头
#以其他进制定义的整数输出结果均为十进制
j=0o1331
print(j) #结果为729
#类型转换
aa="123"
print(type(aa)) # type()查看类型 <class 'str'>
print("aa ="+aa) # 结果 aa =123
aa=123
print(type(aa)) # type()查看类型 <class 'int'>
print("aa ="+str(aa)) # 结果 aa =123 如果不转字符串则会报错
#aa最开始是字符串类型 后面赋值是int类型 aa可以赋任何类型的值
print("aa =",aa) # 结果 aa = 123 不需要转类型
评论 (0)