Python基础及语法(一)
Windows环境安装
下载地址:
https://www.python.org/downloads/windows/
选择好版本后下载Windows x86-64 executable installer后按提示步骤安装即可,注意配置环境变量的勾选,不勾选也可自行配置。
配置路径为安装后Python.exe文件路径与该路径的Scripts文件夹路径,在计算机-属性-高级系统设置-环境变量-Path里编辑添加即可。
多版本Python按路径设置顺序决定cmd下Python执行的版本。
验证配置是否成功方法:
打开cmd,输入命令检查版本。
C:\Users\shana>python -V Python 3.6.8 C:\Users\shana>pip -V pip 18.1 from c:\python\python368\lib\site-packages\pip (python 3.6)
pip配置
参考阿里开源镜像网址:https://developer.aliyun.com/mirror/
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com
选择pypi可以查看详情,linux系统把以上代码添加在~/.pip/pip.conf里即可;Windows用户添加在C盘用户目录当前用户名下,新建pip文件夹,在里面新建pip.ini文件添加进去即可。
cmd下输入:'pip install '+需要安装的库名称,即可安装需要的库。
如安装jupyter输入:'pip install jupyter',该安装过程会把其他依赖库一并安装。
'pip list' 可查看已安装库。
安装完成后输入:'jupyter notebook'即可启动jupyter。
PyCharm安装
下载地址:https://www.jetbrains.com/pycharm/download/#section=windows
查阅帮助
在线帮助:https://pypi.org/
本地文档:Python安装路径Doc文件夹里chm文档。
基础语法
注释
'#'井号后加内容,用于标注内容,程序运行不会执行。
数字
整数:int
浮点数:float
复数:complex
2进制:bin
8进制:oct
16进制:hex
布尔型:bool(True,False)
字符串:str
使用英文单引号,双引号,三引号引用的字符的序列,其中三引号可跨行。
r前缀不转义,f前缀格式化字符串。
\t 换格符,\n换行符。
缩进
Python不使用如C语言等的花括号,改用缩进表示层次,约定为4个空格。
续行
行结尾添加'\'反斜杠可再下一行接着写,注意续写开头不能是其他字符,括号内部会认为是一个整体,不需要续行符。
标识符
一个名字,用来指代一个值。
只能字母开头,可用字母、数字、下划线。
不能使用Python内部关键字。
语言类型
Python是动态语言、强类型语言。Python没有常量,只有字面常量,赋值即定义变量。如果一个变量已定义,再赋值则重新定义。
静态语言需事先声明变量类型,声明后不能改变类型。
动态语言不用声明类型,随时赋值变换其它类型。
强类型语言不同类型之间操作需先转换为同一类型。
弱类型语言不需要操作,内部自动转换。
进制
我们日常用的是十进制,除了十进制还有很多进制,如二进制,八进制,十六进制,计算机认二进制。
n进制转十进制:
个位n为0,十位为1,百位为2而此类推,各位数乘需要转换的进制的n次方之和。
如二进制:0b101 = 1 * 2 ** 0 + 0 * 2 ** 1 + 1 * 2 ** 2 = 1+0+4 = 5
如八进制:0o203 = 3 * 8 ** 0 + 0 * 8 ** 1 + 2 * 8 ** 2 = 3 + 0 + 128 = 131
如十六进制:0xFE = 14*16**0+15*16**1 = 14 + 240 = 254
二进制转八进制或十六进制:
二进制转八进制从个位开始每3个一组,然后转换成十进制合并即可。十六进制则4个一组。
如二进制转八进制:0b10101110= 010 101 110 = 2 5 6 = 0o256
二进制转十六进制:0b10101110= 1010 1110 = 10 14 = 0xAE
码制
原码
在二进制表示数字的基础上最高位增加了一位,正数为0,负数为1。
反码
正数的反码是原码。
负数的反码最高位不变,其余按位取反。
补码
正数的补码是原码
负数的补码是反码+1
补码的补码是原码
计算机的运算使用补码进行
False等价
空集合set:set()
空字典dict:{}
空列表list:[]
空元组tuple:()
空字符串:''
None
0
运算符
逻辑运算
与运算:符号'and',有0均为0。0 and 0 = 0,0 and 1 = 0,1 and 1 = 1
或运算:符号'or',有1均为1。0 and 0 = 0,0 and 1 = 1,1 and 1 = 1
非运算:符号'not',取反。not 0 = 1,not 1 = 0
位运算
位与:符号'&',按位取与。10 & 9 = 1010 & 1001 = 1000 = 8,10 & -9 = 0000 1010 & 1000 0111 = 0000 0010 = 2
位或:符号'|',按位取或。10 | 9 = 1010 | 1001 = 1011 = 11,10 & -9 = 0000 1010 | 1000 0111 = 1000 1111 = -1
异或:符号'^',按位相异取1。10 ^ 9 = 1010 ^ 1001 = 0011 = 3,10 & -9 = 0000 1010 ^ 1000 1001 = 1000 0011 = -3
左移:符号'<<',如左移2位:12 << 2 = 1100 << 2 = 110000 = 48
右移:符号'>>',如右移2位:12 >> 2 = 1100 >> 2 = 11 = 3
取反:符号‘~’,连符号位一起按位取反后取补码
如:~12
12转换为二进制数为: 0000 1100 得到二进制数
每一位取反:1111 0011得到最终结果的补码
取补码: 1000 1101得到最终结果的原码
则 ~12 = -13
算数运算符
常用加减乘除对应:'+','-','*','/'。
另外还有向下整除:'//',取模:'%',幂:'**'。
注:Python2中'/','//'均为整除。
比较运算符
比较运算符返回bool值。大于:'>',小于:'<',大于等于:'>=',小于等于:'<=',等于:'==',非等于:'!='。
因Python是强语言,不同类型只能用'=='比较,均返回Flase,其他比较运算符不能进行比较,均报TypeError,类型错误。
赋值运算符
常用符号:'=',注意区别比较运算符的等于符号:'=='。
另还有:'+=','-=','*=','/=','%=','//='等。
成员运算符
'in','not in'。
身份运算符
'is','not is'。
运算符号优先级
单目运算符 > 双目运算符
算术运算符 > 位运算符 > 比较运算符 > 逻辑运算符
分不清优先级可使用括号:'()'。
内建函数
详情阅读Python自带chm文档
常用模块
math模块
关于运算的模块
math.pi π
math.e 自如常数
math.floor()向下取整
math.ceil()向上取整
math.sqrt()开平方
另外round()四舍六入五取偶,int()取整数部分,//整除且向下取整
程序控制
顺序
按顺序一行行代码执行,如:
1 print('Hello') # 按顺序输出Hello Word 2 print('Word')
分支
根据不同的情况判断后,选择代码运行,如:
1 a = float(input('a = ')) # 判断a 2 if a > 0: 3 print('a大于0') 4 elif a == 0: 5 print('a等于0') 6 else: 7 print('a小于0')
循环
再一个条件满足的情况下重复进行该代码运行,当不满足时跳出循环,一般不知道循环次数时使用while循环,否则for循环亦可,如:
1 while True: # 死循环 2 pass
1 for i in range(1, 11): # 打印1-10 2 print(i)
continue
跳过当前循环,继续下一次循环,如:
1 for i in range(1, 10): # 打印1-10以内奇数 2 if i % 2 == 0: 3 continue 4 print(i)
break
结束当前循环,如:
1 count = 1 2 for i in range(7, 1000, 7): # 计算1000以内被7整除的前20个正整数 3 print(i, count) 4 count += 1 5 if count > 20: 6 break
else子句
循环正常结束,else子句会被执行,经由break终止的循环不会执行。
1 for i in range(1): # 执行 2 pass 3 else: 4 print('执行')
for i in range(1): # 不执行 break else: print('不执行')
字符串拼接
Python提供多种字符串拼接方式,如:
1 a, b = 1, 2 # 输出1 + 2 = 3 2 print(str(a) + ' + ' + str(b) + ' = ' + str(a + b)) 3 print(f'{a} + {b} = {a + b}') 4 print('{} + {} = {}'.format(a, b, a + b))