python基础语法和进制

1.第一个程序

print('hello world!')
结果
hello world!

Process finished with exit code 0

2.开发中常用的快捷键

ctrl + / --- 添加注释、取消注释
ctrl + s ---保存
ctr + c ---复制、拷贝
crt + v ---粘贴
crt + x ---剪切
crt + z ---撤销
crt + shift + z ---反撤销
crt + f ---查找
crt + r ---替换
crt + a ---全选
选中指定范围的操作:鼠标点击选中开始的位置,按住shift点击选中结束的位置;
显示多个光标 : 按住alt键再点击鼠标

3.基础语法

(1)注释

定义:代码中不参与编译执行的文字(不影响程序功能的文字)就叫注释;
作用:它是专门用来对代码进行注解和说明的。
python中的单行注释就是在一行文字前加#。
python中的多行注释是加"""注释"""或者'''注释'''
"""
多行注释1
多行注释2
多行注释3
"""

(2)语句

一条语句占一行,一行语句结束后可以不写分号;
如果一行中需要写多条语句,语句之间必须加分号。

如:

print('hello')
print('hello');print('你好')
结果:
hello
hello
你好

Process finished with exit code 0

(3)缩进

python中一条语句的开头不能随便加缩进(tab)或者空格;如果需要缩进的时候必须加缩进

(4)标识符

定义:标识符是专门用来给变量、函数或者类等命名的
要求:由字母、数字或者_组成;
数字不能开头

(5)关键字

在python中有特殊功能或者特殊意义的标识符就是关键字,又叫保留字。
在python3.7版本中有35个关键字,如下:

'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'

其关键字也可以用代码在python中实现找到,代码如下:

import keyword
print(len(keyword.kwlist))
print(keyword.kwlist)
结果如下:
35
['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']

Process finished with exit code 0

(6)常用的数据

1)数字数据

定义:用来表示大小的数据就是数字数据,在程序中直接写。
例如:100,18,12.5,-0.5,2e3(科学计数法,用的较少),2+5j(复数,用的较少)

2)文本数据

定义:文本信息对应的数据,在程序中需要用单引号或者双引号引起来。
例如:hello’,‘成都市’,‘1503’。注意:电话号码、门牌、车牌等也是文本数据。

3)布尔数据

定义:用True表示真/肯定,用False表示假/否定,程序中只有Ture和False两种

(7)常见的数据类型

整型(int) --- 包含所有的整数
浮点型(float)--包含所有的小数
字符串(str)--文本数据对应的数据类型
布尔类型(bool)--Ture和False对应的数据类型
其他: 列表(list)、字典(dict)、元组(tuple)、集合(set)、字节(bytes)、迭代器(iter)、生成器、函数(function)
type(数据)--功能:获取数据对应的类型

(8)输入和输出函数
1)输出函数:print

①print(数据)——在控制台中打印指定数据

print(10)
print('abc')

结果:

10
abc

Process finished with exit code 0

②print(表达式)——打印表达式的结果

print(10+20)

结果:

30

Process finished with exit code 0

③print(表达式1,表达式2,表达式3,...) ——在一行同时打印多个表达式的结果

print('你好',123,'1+2',1+2)

结果:

你好 123 1+2 3

Process finished with exit code 0

④定制换行:默认情况下,一个print中的内容会在一行打印。

print('hello',end=';')
print('你好')

结果:

hello;你好

Process finished with exit code 0

⑤定制分隔默认情况下,一个print打印多个内容的时候,多个内容之间用空格隔开。

print(1,2,3,4,sep='+')

结果:

1+2+3+4

Process finished with exit code 0
2)输入函数:input

变量=input(输入提示信息)—— 用变量去获取从控制台输入的内容;不管输入的内容是什么,类型都是字符串。

age=input('请输入年龄:')
print('age的值是',age,type(age))

结果:

请输入年龄:20
age的值是 20 

Process finished with exit code 0

注意:输入信息后按空格程序才会继续执行。

4.进制

数字在编程中有4种表示方式:十进制、二进制、八进制和十六进制。
1)十进制

基数:0,1,2,3,4,5,6,7,8,9
进位:逢10进1
位权:123=100+20+3=1 * 10 ^ 2+2 * 10 ^ 1+3 * 10 ^ 0
表示方式(python):直接写
转换:直接打印

 num1 = 123
 num2 = 578
 print(num1,num2)

结果:

123 578

Process finished with exit code 0
2)二进制

基数:0,1
进位:逢2进1 1+0==1; 0+1==1; 1+1==10 110+101==1011
位权:1011(2)=1 * 2 ^ 0+1 * 2 ^ 1+0 * 2 ^ 2+1 * 2 ^ 3==11(10)
表示方式(python):二进制前加0b/0B
转换:bin(其他进制的数字)

 num3 = 0b1011
 print(num3)
 print(bin(100))

结果:

11
0b1100100

Process finished with exit code 0
3)八进制

基数:0,1,2,3,4,5,6,7
进位:逢8进1
位权:123(8)=3 * 8 ^ 0+2 * 8 ^ 1+1 * 8 ^ 2==3+16+64=83(10)
表示方式(python):八进制前加0o/0O
转换:oct(其他进制的数)

num4 = 0o123
print(num4)
print(oct(100))
print(oct(0b101101))

结果:

83
0o144
0o55

Process finished with exit code 0
4)十六进制

基数:0,1,2,3,4,5,6,7,8,9,a(10),b(11),c(12),d(13),e(14),f(15)
进位:逢16进1
位权:1f(16)=15 * 16 ^ 0+1 * 16 ^ 1==31(10)
表示方式(python):十六进制前加0x/0X
转换:hex(其他进制的数)

num5 = 0x1f
print(num5)
print(hex(215))
print(hex(0b010110))
print(hex(0o375))

结果:

31
0xd7
0x16
0xfd

Process finished with exit code 0

======手动进行进制之间的转换======

1.十进制转换成其他进制 ——辗转取余法(不断的除2/8/16取余数)
2.其他的进制转十进制--位权乘以对应位置上的基数然后求和:
0b1011——2 ^ 0+2 ^ 1+2 ^ 3 = 11
3.二进制、八进制和十六进制之间的相互转换
1 011 011(2)——>133(8)
101 1011(2)——>5b(16)

5.原码、反码和补码

计算机底层存储数据只能存数字,并且存的是数字的补码

(1)计算机内存大小(最小单位是位):

在程序中,使用内存的时候的最小单位是字节
1bytes(字节)= 8bit(位)
1kb = 1024bytes
1Mb = 1024kb
1G = 1024M
1T =1024G

(2)原码

原码 = 符号位+数字对应的二进制(原码就是在数字的二进制的最前面加上符号位)
符号位上0表示正,1表示负
正数的原码、反码、补码是一样的,都是原码
10(10)->1010(2)
10(10)->00001010(原码)
-10(10)->10001010(原码)

(3)反码

反码就是原码符号位不变,其他的位全部取反(0变1,1变0)

-10 -> 10001010(原码)-> 11110101(反码)

(4)补码

补码就是反码加1

为什么计算机存负数的时候要存补码:计算机只有加法器,只能进行加运算。负数进行运算的时候用原码不能正确运算,只有补码才行。
-10 -> 10001010(原码)-> 11110101(反码)->111110110(补码)

3+2 = 5
3的补码:00000011
2的补码:00000010
3+2 = 00000011+ 00000010 = 00000101==5

3-2=1
3的补码:00000011
-2的补码:10000010(原)->11111101(反)->11111110(补)
3-2 = 00000011-11111110=00000001

-130+20=-110
-130的补码:1000000010000010(原)->1111111101111101(反)->1111111101111110(补)
20的补码: 00010100
补码计算:1111111101111110+00010100 = 111111110010010(补)->111111110010001(反)->100000001101110(原)

你可能感兴趣的:(python基础语法和进制)