1 pycharm中常见快捷键
ctrl+/-添加注释或者取消一行注释
ctrl+n-新建文件
ctrl+r-替换
ctrl+f-搜索
ctrl+z-撤销
ctrl+s-保存
ctrl+shift+z-反撤销
tab-补全代码
ctrl+a全选
ctrl+c-复制
ctrl+v-粘贴
注意:程序中涉及到的所有和语法相关的符号,都需要在英文状态下输入。
2 python基础语法
2.1 注释
注释是程序中专门用来注释说明的文字,不会参与程序的编译和执行。
注释分单行注释和多行注释。
2.1.1单行注释
在说明性文字前加#
# 单行注释
2.1.2多行注释
使用三个‘或者“扩起来,用来设置多行注释;但是一般使用三个双引号。
"""
多行注释
"""
2.2 标识符
标识符就是专门用来命名的。给变量命名、函数命名、类命名等。
要求:
python中的标识符要求是由数字、字母和下划线组成,并且数字不能开头。
注意:在pytohn3.x,标识符中可以包含非ASCII码字符。但是在实际开发的时候不要用。
2.3行与缩进
python中对代码里面的所有有严格要求。同一级代码前面的缩进(空格/tab)个数必须一致。
冒号后面的语句需要缩进一个单位。
行的规范:要求声明函数和类的前后需要有两个空行。
2.4分段显示
一句代码很长,需要多行来显示的时候,可以在需要换行的位置加\
a=12+23+123+\
12315+1234
注意:加\的时候不能将一个数据或者一个变量名给拆开。
如果代码是列表、元祖、字典、集合的字面量,可以直接换行,不用加\
2.5一行显示多条语句
python中一行显示一条语句的时候,后面不用加分号;
但是如果希望在一行显示多条语句,那么多条语句之间必须加分号。
print(a);print(b)
2.6关键字(保留字)
python中已经定义好的有特殊可能或者特殊的意义的一些标识符,就是python的关键字。
命名的时候不能使用关键字。
python中关键字有:
import keyword # 导入keyword模块
print(keyword.kwlist) # 打印python中所有的关键字
False,None, True, and, as, assert, 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
2.7print和input函数
print(内容)-在控制台中打印内容(内容必须是python数据)。
print(内容1,内容2,....)-在一行打印多个内容,在控制台显示的时候多个内容之间用空格隔开。
默认情况下,一个print中的内容占一行(以换行结束)。一个print中的多个内容用空格隔开。
2.7.1定制打印设置
print(内容1,内容2,....,内容n,end='换行标志')。
在一个print中以end结尾,并在单引号中输入换行标志,则这个print和下个print之间打印在一行,两个打印的内容之间以换行标志链接(如#或者enter)。
print(内容,内容1,...内容n,sep='分隔标志')。
在一个print中以sep结尾,并在单引号中输入分隔标志,则在这个print中;打印的内容之间以输入的分隔标志连接。
print("内容1","内容2",...,"内容n",end='#')
print("内容1","内容2",...,"内容n",sep='')
2.7.2input函数
input()-从控制台输入一串内容,以回车键结束。并且将内容返回(以字符串的形式返回)。
注意:程序执行到input的时候,程序会停下来,直到输入完成为止
input('提示信息') input中可以有提示语句。
a=input('x:')
b=input('y:')
print(int(a)+int(b))
3.python中常用数据类型
python中常用数据类型有整型、浮点型、布尔值、字符串、列表、字典、元祖、集合、函数等。
3.1.常见数据类型的字面量(常量)
整型:1,2,3
浮点型:1.1,1.2
布尔值:True,False
字符串:'a12c',"12ad"由单引号或者双引号扩起来的内容。
列表:[12,'ad',True]
元祖:(12,23,'abc',True)
字典:{'ab':120,18:'ads'}由数据对组成,数据对内部用冒号分开,数据对之间用逗号分开。
3.2数字相关类型
python中和数字相关的类型有四种:整型、浮点型、布尔、复数(虚数)
3.2.1整型(int型):
整数对应的类型,包含了所有的整数。python3.x中整数对应的类型只有一个int类型。
但python2.x中有int和long两种。
python中的整数,除了可以用十进制表示,还可以用二进制、八进制和十六进制进行表示。
3.2.2浮点型(float型):
小数对应的类型,包含了所有小数
支持科学计数法
2e4 #2乘10的4次方,输出为20000.0。
3.2.3布尔类型(bool):
只有True(表示真)和False(表示假)两个值,两个都是关键字,首字母大写。
True的实质是数字1,False实质是数字0.
3.2.4复数(complex):
所有的虚数对应的类型。
数字后面加j,来表示复数的虚部。实部就是普通数字。(10+9j)
3.3type函数
type(数据):获取数据对应的类型。
print(type(100))
3.4 isinstance函数
isinstance(数据,类型)-判断指定的数据是否是指定的数据类型,结果是布尔值。
print(isinstance(10.0,int))
3.5类型的强制转换
类型名(数据)-将指定数据转换成指定类型。
整型转成浮点型:在整数后面加.0 float()
浮点型转换成整型:只保留小数点前面的整数部分 int()
其他类型转布尔: bool()
整型和浮点型转成布尔型,只有0转成False,其他的转换成True
布尔转成数值型,False转成0/0.0,True转成1/1.0
注意:复数不能转换成整型和浮点型,可以转换成布尔型(不管什么数据都可以转换成布尔)
print(complex(True))
x = input("x:")
y = input("y:")
print(int(x)*int(y))
4.进制
4.1十进制
基数:0至9,
进位:逢10进1
位权:123=1*10^2+2*10+3
表示:所有的数字默认为10进制数(数字直接写)
4.2二进制
基数:0,1
进位:逢二进一
位权:1101=1*2^3+1*2^2+0*2^1+1
表示:在二进制数字前加前缀:0b/0B 0b101
4.3八进制
基数:0至7
进位:逢八进一
位权:123=1*8^2+2*8^1+3
表示:在八进制数字前加前缀:0o 0o12
4.4十六进制
基数:0至9,A(10)、B(11)、C(12)、D(13)、E(14)、F(15) A和a都可以。
进位:逢十六进一
位权:123=1*16^2+2*16^1+3
表示:在十六进制数字前加前缀0x/0X 0x1a2
4.5其他进制和十进制之间的转换
4.5.1其他进制转成十进制:
每一位上的数乘权值,然后再求和。
110(8)=1*8^2+1*8^1
110(16)=1*16^2+1*16^1
4.5.2十进制转成其他进制
用十进制数除以其他进制数的进制数,用短除法一直除,直到商小于进制数,然后将商排在最前,对余数从下到上进行排列组成的数据就是转换后的数据。
79(10)——1001111(2)
79(10)——117(8)
79(10)——4f(16)
4.6二进制和八进制十六进制的相互转换
4.6.1二进制转八进制:
每三位的二进制转换成1位的八进制
001 100 100 110 010 011 100(2)——1 4 4 6 2 3 4(8)
4.6.2二进制转十六进制
每四位的二进制转换成一位的十六进制
0110 0100 1100 1001 1100(2)——6 4 c 9 c(16)
4.6.3八进制转二进制:
每一位八进制转换成三位二进制
67(8)——110 111(2)
4.6.4十六进制转二进制:
每一位的十六进制转换成四位的二进制
67(16)——0110 0111(2)
a12(16)——1010 0001 0010(2)
4.6.5八进制转十六进制
八进制与十六进制之间互相转换,先转成二进制,在转换。
4.7进制转换相应的函数
进制转换函数转换后的 - 返回值是字符串
bin(数字)-将数字转换成二进制
oct(数字)-将数字转换成八进制
其他进制数字最后会自动转成十进制
hex(数字)-将数字转换成十六进制
5.原码、反码及补码
5.1计算机数据的存储
计算机能够直接存储的是数字,并且存的数字的补码。
5.2计算机内存大小单位
位(bit) 1位存储一个数字
1字节(byte)=8位
1KB=1024字节
1MB=1024KB
1GB=1024MB
1TB=1024GB
5.3原码
原码:符号位+真值(用最高位表示符号位,后面的其他位为表示数字的二进制)。
符号位:0->正,1->负数
真值:数字对应的二进制值
10(原码)=00001010
-10(原码)=10001010
5.4反码
正数的反码和原码一样。负数的反码是符号位不变,其他位上的数取反(0变1,1变0)。
10(反码):00001010
-10(反码):11110101
5.5补码
正数的补码和原码一样。负数的补码就是反码加1。
10(补码):00001010
-10(补码):11110110
注意:数据存储和运算的时候采用的是补码,看结果看的是原码。
#2-3的实现过程
2:0010(原)= 0010(补)
-3:1011(原) = 1100(反)= 1101(补码)
0010(补)+ 1101(补码) = 1111(补码)= 1110(反) = 1001 = -1