关于Python
Python是一种计算机程序设计语言,是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
Python的优缺点
优点
1)简单和明确,做一件事只有一种方法。
2)学习曲线低,与其它很多语言比上手更容易。
3)开放源代码,拥有强大的社区和生态圈。
4)解释型语言,完美的平台可移植性。
5)支持两种主流的编程范式,可以使用面向对象和函数式编程。
6)可扩展性和可嵌入性,可以调用C/C++代码也可以在C/C++中调用。
7)代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。
缺点
1)执行效率低下,因此计算密集型任务可以由C/C++编写。
2)代码无法加密,但是现在的公司很多都不是卖软件而是卖服务,这个问题慢慢会淡化。
3)在开发时可以选择的框架太多,有选择的地方就有错误。
注释
注释是代码中对代码进行解释和说明的文本内容;不会影响程序的功能和执行。
1)单行注释:在一行文字的前面加#(快捷键:ctrl + /)
2)多行注释:将注释内容写在三个双引号或者三个单引号里面(但是一般使用三个单引号)
"""
多行注释1
多行注释2
"""
语句
一条语句占一行,语句结束后不用加分号。
如果一行要显示多条语句,语句之间必须用分号隔开。
sum = 10; str = 'abc'
如果一条语句很长,需要多行显示的时候,可以在语句中加\然后在换行(注意\不能破坏数据本身)。
num2 = 1829839284 + num\
* 34344 - 3798798\
+ 809839\
/ 2738465 ** 1\
- (531-53168) + (51 - 1)
print(num2)
缩进
python中一行代码的开头不能随便加缩进(空格或制表符)。
python语法要求必须有缩进的位置一定要加缩进。
if num > 10:
print(num)
标识符
标识符是用来命名用的。一般是给变量命名、函数命名或者类命名。
标识符规则:所有标识符都必须是由字母、数字和下划线组成;不能以数字开头。
# 错误命名
239 = 10
# 正确命名
abc12 = 10
abc = 10
_23 = 10
_abc = 10
python2.x以后,标识符中可以出现中文,日文等符号;实际开发中不推荐使用。
关键字
关键字(保留字)就是python中有特殊功能和特殊意义的标识符。
# 查看python中所有关键字
import keyword
print(keyword.kwlist)
# 输出结果
"""
['False', 'None', 'True', 'and',
'as', 'assert', 'async', 'await',
'break', 'class', 'continue',
'def', 'del', 'elif', 'else',
'except', 'finally', 'for',
'from', 'global', 'if', 'import',
'in', 'is', 'lambda', 'nonlocal',
'not', 'or', 'pass', 'raise', 'return',
'try', 'while', 'with', 'yield']
"""
常见数据类型和数据
1)数字数据:整型(int)、浮点型(float)。
整型:10,89,-10 浮点型:12.9,23.0,-12.0,0.23
2)字符串(str):用双引号或者单引号将文本数据引起来。
'abc'
"abc"
3)布尔(bool):只有True和False两个值。
4)列表(list)、元组(tuple)、集合(set)、字典(dict)、函数(function)等······
5)类型转换:类型名(数据) → 将括号中的数据转换成指定的类型并返回。
int(20.1)
float(100)
输出和输入
1)print函数 - 输出函数:在控制台打印print后面括号中的内容的结果。
print(100, 'abc', 10+20)
2)input函数:获取从控制台输入的内容;不管输入的内容是什么,input返回的结果的类型都是字符转类型。
input(提示信息)
input('请输入')
进制转换
计算机只能存储和处理二进制数据
int类型 - 包含所有的整数,整数可以表示为十进制、二进制、八进制和十六进制。
1)十进制
基数:0,1,2,3,4,5,6,7,8,9
进位:逢十进一
位权:10^x 123(10) = 1×10^2 + 2×10^1 + 3×10^0 = 123(10)
2)二进制
基数:0,1
进位:逢二进一
位权2^x 111(2) = 1×2^2 + 1×2^1 + 1×2^0 = 7(10)
3)八进制
基数:0,1,2,3,4,5,6,7
进位:逢八进一
位权8^x 111(8) = 1×8^2 + 1×8^1 + 1×8^0 = 73(10)
4)十六进制
基数:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
进位:逢十六进一
位权16^x 111(16) = 1×16^2 + 1×16^1 + 1×16^0 = 273(10)
表示方式:在不同进制数前加相应前缀
# 10进制
num = 10
# 2进制
num1 = 0b1011
# 8进制
num2 = 0o67
# 16进制
num3 = 0x5fa
原码反码和补码
计算机存数据的时候,只能存数字,而且存的是数字的二进制的补码。
正数的原码、反码和补码相同。
1)原码 = 符号位(0表示正,1表示负) + 真值(数字转换成二进制的值)。
10 → 1010(真值)→01010
10的原码:00000000 00000000 00000000 00001010
-10的原码:10000000 00000000 00000000 00001010
2)负数反码:符号位不变,其他位取反(0变1,1变0)
-10的反码:11111111 11111111 11111111 11110101
3)负数的补码:反码+1
-10的补码:11111111 11111111 11111111 11110110
计算机采用补码的原因:计算器没有减法器,负数采用原码进行加法运算的时候结果不对,采用补码结果才对。
运算符
python支持的运算符:数学运算符、比较运算符、逻辑运算符、位运算、赋值运算。
数学运算符:+(求和),-(求差),(求积),/(求商),%(求余),//(整除),*(幂运算)
1)+-*/和数学+-×÷功能一模一样。
2)% 求余数。多用于判断一个数能否被另一个数整除;对2取余判断一个数是奇数还是偶数。
3)//求商,取商的整数部分(整数)。
num = 123
print(num//100) # 1
print(num % 10) # 3
print(num // 10 % 10) # 2
print(num % 100 // 10) # 2
4)** 求次方值
x ** y 求x的y次方
print(2**3)
print(16 ** 0.5) # 4.0
print(8 ** (1/3)) # 2.0
比较运算符:>,<,>=,<=,==,!=。
所有比较运算符的结果都是布尔值(不是True就是False)
1)>,<,>=,<=和数学中相应的比较运算符一样。
2)== 判断是否相等,!=判断是否不相等。
python比较大小可以连写比较范围。
print(10 < 100 < 200)