Python的基本语法和数据类型,进制,原码,反码和补码

基本语法

一,快捷键

补充的新的

ctrl+/ 添加或取消一行注释
ctrl+n 新建
ctrl+f 搜索
ctrl+r 搜索+替换
ctrl+z 撤销
ctrl+shift+z 反撤销
TAB 补充代码


二,注释

  • 注释:是程序中专门用来注释说明文字。不参与程序编译和执行。对程序的功能没有任何影响
  • 单行注释:在说明性文字前加#
  • 使用三个单或双引号阔起来了,设置多行注释
    例:
"""
多行
注释
"""

三,标识符

  • 标识符就是用来命名的,给变量、函数、类命名。
num = 10
print(num)

四,行与缩进

  • python中对代码里面的所有有严格要求。同级代码前的缩进(空格/tab)的个数必须一致
  • 行的规范:要求声明函数和类的前后需要有两个空行
  print('hello world')  # IndentationError

五,分段(行)显示

  • 一句代码很长,需要多行来显示的时候,可以在需要换行的位置加\

注意:加\的时候不能将一个数据,一个变量名给拆开

num = 2837487 + 34398748 + 384798578 +\
      37847578 + 347895789 + 457279 + \
      345234757 + 3549087 + 3457078

如果代码是列表、元祖、字典、集合的字面量,可以直接换行,不用加\

list1 = [
    12,
    23,
    4543,
    'ahgshgd',
    'sjhfjkh'
]

六,一行显示多条语句

  • 一行显示一条语句的时候,后面不用加分号。但是如果希望在一行显示多条语句,那么多条语句之间必须加分号
print('aaa');print('bbb')

七,关键字(保留字)

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


八,print函数和input函数

print(内容) - 在控制台中打印内容(内容必须是python数据)

print(内容1, 内容2, ..., 内容n) - 在一行打印多个内容,在控制台显示的时候多个内容之间用空格隔开
默认情况下,一个print中的内容占一行(以换行结束)。一个print中的多个内容用空格隔开

print(内容,内容1,...,内容n, end='换行标志')
print(内容,内容1,...,内容n, sep='分割标志')

print('打印1')
print(100)
print('abc', 'bcd', 200)

print('打印1', end='==')
print(100)
print('abc', 'bcd', 200, sep='@')
print('abc', 'bcd', 200, sep='')

结果如下

image.png

input() - 从控制台输入一串内容,以回车结束。并且将内容返回(以字符串的形式返回)

input('提示信息')
注意:程序执行到input的时候,程序会停下来,直到输入完成为止

print(input('请输入:'))

结果如下

image.png

常用数据类型

  • python中常用的数据类型有:整型、浮点型、布尔、字符串、列表、字典、元祖、集合、函数等....

1.常见数据类型的字面量(常量)

整型: 100, 23, -129 -- 所有的整数
浮点型: 12.3, 45.0, -0.1123 -- 所有的小数
布尔: True, False -- 只有两个值
字符串: 'abc', "ahjs", '348sj', "上的+-" -- 由双引号或者单引号括起来的内容
列表: [12, 'abc', True]
元祖:(23, 89, 'asd')
字典:{'ab': 120, 18:'abc'}

2.数字相关类型

  • python中和数字相关的类型:整型、浮点型、布尔、复数(虚数)

a.整型(int):整数对应的类型,包含了所有的整数。

python3.x中整数对应的类型只有一个:int
python2.x中整数对应的类型有:int和long
python中的整数,除了可以用十进制表示,还可以用二进制、八进制和十六进制进行表示

b.浮点型(float): 小数对应的类型,包含了所有小数。

支持科学计数法

12.90

-12.03
2e4 # 20000.0

print(2e4)
print(3e-2)

c.布尔(bool): 只有True和False, 其中True表示真,False表示假。

True实质就是数字1,False实质是数字0
True和False都是关键字

print(True, False)
print(1+True, 1+False)

结果如下

image.png

d.复数(complex): 所有的虚数对应的类型

数字后面加j,来表示复数的虚部。实部就是普通数字
例如

10+1j
20-9j

print((10+1j)+(20-9j))

结果如下

image.png

3.type函数

  • type(数据) - 获取数据对应的类型
print(type(100))
print(type(10+2j))

结果如下

image.png

4.isinstance函数

  • isinstance(数据,类型) - 判断指定的数据是否是指定的类型,结果是布尔值
isinstance(100, float)   # 判断100是否是float类型
print(isinstance(100, float))   # False
print(isinstance(100, int))     # True

5.类型的强制转换

  • 类型名(数据) - 将指定数据转换成指定类型

整型转成浮点型: 在整数的后面加.0 float()
浮点型转换成整型: 只保留小数点前面的整数部分 int()
其他类型转布尔: 0转换成False,其他的转换成True bool()

注意:复数不能转换成整型和浮点型,可以转换成布尔类型(不管什么数据都可以转换成布尔)

print(float(False))
print(int(False))
print(bool(10+10j))

结果如下

image.png

进制

1.十进制

基数:0,1,2,3,4,5,6,7,8,9
进位:逢10进1
位权:123 = 1x10^2 + 2x10^1 + 30x10^0 (10^n)
表示: 所有的数字都是10进制数(数字直接写)


23
10
78

2.二进制

基数: 0,1
进位: 逢2进1
位权: 1101(2) = 1x2^0 + 0x2^1 + 1x2^2 + 1x2^3 = 13 (2^n)
表示: 在二进制数前加前缀:0b或者0B


0b10101
0B01010

3.八进制

基数:0,1,2,3,4,5,6,7
进位:逢8进1
位权: 123(8) = 3x8^0 + 2x8^1 + 1x8^2 = 83 (8^n)
表示:在八进制数加前缀:0o或者0O


0o12
0O67

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
位权: 123(16) = 3x16^0 + 2x16^1 + 1x16^2 (16^n)
表示: 在十六进制数的前面加前缀:0x或者0X


0x12a
0Xffee
0X1023

num = 0x1010
print(num)

结果如下

image.png

5.其他进制和十进制之间的转换

  • 其他进制转十进制:每一位上的数*权值,然后再求和

110(2) = 1x2^1 + 1x2^2 = 6(10)
110(8) = 1x8^1 + 1x8^2 = 72(10)
110(16) = 1x16^1 + 1x16^2 = 272(10)

  • 将十进制转换成其他进制

100(10) = 1100100(2)
100(10) = 144(8)
100(10) = 64(16)
79(10) = 1001111(2)
79(10) = 117(8)
79(10) = 4f(16)

6. 二进制和八进制十六进制的相互转换

  • 二进制转八进制:每3位的二进制转换成1位的八进制

001 100 100 110 010 011 100(2) = 1446234(8)

  • 八进制转二进制:每1位8进制,转换成3位的二进制

6745(8) = 110 111 100 101(2)

  • 二进制转十六进制:每4位的二进制转换成1位的十六进制

0110 0100 1100 1001 1100(2) = 64c9c(16)

  • 十六进制转二进制:每1位16进制,转换成4位的二进制

6745(16) = 0110 0111 0100 0101(2)
a12(16) = 1010 0001 0010(2)

7.进制转换相应的函数 - 返回值是字符串

  • bin(数字) - 将数字转换成2进制
print(bin(100))
print(bin(0x6745))
print(bin(0o76))

结果如下

image.png
  • oct(数字) - 将数字转换成8进制
print(oct(100))
print(oct(0x1af))
print(oct(0b110001101))

结果如下

image.png
  • hex(数字) - 将数字转换成16进制
print(hex(100))
print(hex(0o67))
print(hex(0b11011101110))

结果如下

image.png
  • 所有进制最后会自动转换成10进制
num = 0xaf
print(num)

print(0b111 + 0b110)

结果如下

image.png

原码,反码和补码

1.计算机数据的存储

  • 计算机能够直接存储的是数字,并且存的数字的补码

2.计算机内存大小单位

位(bit)
1字节 = 8位
1KB = 1024字节
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB

3.原码:符号位+真值 (用最高位表示符号位,后面的其他为表示数字的二进制)

  • 符号位: 0 -> 正, 1 -> 负数
  • 真值 :数字对应的二进制值

10(原码) = 00001010
-10(原码) = 10001010

4.反码:

正数的反码和原码一样。负数的反码是符号位不变,其他位上的数取反(0变成1,1变成0)
10(反码) = 00001010
-10(反码) = 11110101

5.补码:

  • 正数的补码和原码一样。负数的补码就是反码加1

10(补码) = 00001010
-10(补码) = 11110110

注意:数据存储和运算的时候采用的是补码。看结果看的是原码

例如:
如果计算机存储的是原码:
3:0011
2:0010
3+2 = 0101 = 5

3-2 = 3+(-2) = 1101 = -5
3: 0011
-2:1010

补码:
3(补) = 0011
-2(补) = 1101(反) = 1110(补)
0011(补)+1110(补) = 0001(补) = 0001(原) = 1

2-3
2:0010(原)= 0010(补)
-3:1011(原) = 1100(反)= 1101(补码)
0010(补)+ 1101(补码) = 1111(补码)= 1110(反) = 1001 = -1


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容