计算机基础知识与python基础
作为python程序员小白,现在开始与大家分享我所学python的知识
1.计算机基础知识
1.1计算机内存大小
计算机内存大小,从小到大依次为bit(二进制),Byte(字节),kB,MB,TB…
8bit=1Byte
1kB=1024B
1MB=1024KB
…
以此类推
1.2计算机的原码,反码,补码
原码最高位为符号位,1表示负,0表示负
计算机内正数原码,反码,补码是本身
只有负数才有反码,补码。
例如 24 原码为 00011000,补码,反码依然是这个
-24 原码为10011000
反码为除最高位不变,其他位取反,11100111
补码在反码的基础上加1,则为11111000
为什么计算机存储负数要存储补码?
因为在计算机硬件内部没有减法器,只有加法器。如果负数使用原码保存进行数字运算时,则会出现运算错误。
例如 3 - 24
00000011 - 10011000= 10010101 结果为-149 ,显然不对
2. python基础知识
2.1 python的介绍
python是一门解释型编程语言
Python 解释器(一行一行的执行),执行效率低
C语言 和 JAVA语言要编译生成可执行文件 ,根据编译后的译文执行所有,效率更高。
缺点:
①执行效率慢,但硬件可以弥补,但一般密集型的运算还是c语言和c++
②代码无法加密
优点:
简单,易学,开源,免费,高层语言,可移植性,面向对象,可扩展性,丰富的库。
2.2 python的快捷键
python里一些常用快捷键的使用:
ctrl+a 全选
ctrl+x 剪切
ctrl+s 保存
ctrl+z 撤销
ctlr+c 复制
ctrl+v 粘贴
ctrl+ shift+z 反撤销
鼠标点击+shift不放 选中部分
鼠标点击+alt/option 键不放 创建多个光标
ctrl + alt+ L 代码规范化
2.3 python的内存空间问题
为什么说python相比c与java不会浪费内存而且不会溢出?
python里会根据所需要的内存大小而开辟相应的内存空间,而c是先开辟一个空间,再往里面 放入数据,比如整型四个字节,一旦超过四个字节就会溢出,及超过1 11111111 11111111 11111111 11111111,而python会根据所需要的内存大小再开辟一个空间,如果数据修改了,再放入到另一个内存空间。所以python数据不会溢出
在c语言中整型里是四个字节,比如56,要存储 00000000 00000000 00000000 00111000 而在python里 只需要存储一个字节就可以了,存储 0b00111000
即可,所以相比c,python更能节约内存空间
2.4 python的注释
ctrl+/,可以快速注释一行代码
使用#表示一个单行注释
使用 ‘’’ ‘’‘’‘’三个单引号与三个双引号注释多行
2.5 python的数据类型
关键字,
数字(整数,浮点数),
字符串(必须要用一对单引号或者双引号包裹),
布尔值(表示正确或错误)true or False,
数组(列表 list Tupble Dic set)
2.6 python标识符的规则:
严格区分大小写
由数字 ,字母 ,下划线组成 ,不能以数字开头
不能使用除了下划线以外的特殊字符
不能使用关键字(python里特殊意义的单词)
import keyword
print(keyword.kwlist) 可查看所有关键字
变量名要做到顾名思义: 遵守一定的命名规则 小
驼峰命名法 userNameAndPassword 第一单词字母小写,其他字母每个单词前面大写
大驼峰命名法 UserNameAndPassword每个单词的前面都大写
用_连接 user_name_and_password python使用
可以使用汉字,但尽量不要用
尽量不要使用系统内置的函数名,变量名和类名
2.7 python的二进制,八进制,十六进制的转换
0b111000 以0b开头表示二进制
0o111000 以0o开头表示为八进制
0x111000 以0x开头为十六进制
bin()可以转换为二进制
oct()转换为八进制
hex()转换为十六进制
2.8 python语句的输入输出
Python里使用print内置函数来输出一个结果
普通输出
print(‘hello’) # 在控制台里输出 hello 字符串
print 可以输出一个或者多个数据,多个数据之间使用 逗号 分割
多个值之间默认使用空格进行分割,可以通过参数 sep 来修改,使用 sep 可以修改多个值之间的连接方式
end 用来表示当值打印完成以后,最后输出的字符,默认是\n 表示的是换行
file 用来指定输出的位置。默认是输出到控制台,可以修改数据的输出位置
print(‘呵呵呵’, ‘哈哈哈’, ‘嘿嘿嘿’, ‘嘻嘻嘻’, ‘嘤嘤嘤’, sep=’*’, end=’============’)
格式化输出
name = ‘彭于晏’
addr = ‘河南’
age = 20
使用指定的字符进行占位
%s 表示字符串的占位
%d 表示的整数占位符
print(‘大家好,我系%s,我来自上海,我今年18岁了’ % name)
print(‘大家好,我系%s,我来自%s,我今年%d岁了’ % (name, addr, age))
n = 8
print(‘大家好,我是第%d号偶像练习生’ % n)
print(‘大家好,我是第%3d号偶像练习生’ % n) # %3d ==> 以指定长度的字符输出,如果长度不够,会使用空格在左边补齐,如果长度超出了,会正常显示
print(‘大家好,我是第%-3d号偶像练习生’ % n) # %-3d ==> 如果长度不够3位,会在右侧使用空格补齐
print(‘大家好,我是第%03d号偶像练习生’ % n) # %03d ==> 如果长度不够3位,会在左侧使用0补齐
%f 表示浮点数的占位符
%.nf 表示保留小数点后n位
%x ==> 以十六进制显示数字
%X ==> 以大写十六进制显示数字
%0 ==> 以八进制的形式显示数字
%c ==> 把数字转换成为编码对应的字符
money = 100.54
print(‘我今天挣了%f元’ % money)
print(‘我今天挣了%.2f元’ % money)
二进制最大的单个数字是 1
八进制最大的单个数字是 7
十进制最大的单个数字是 9
十六进制最大的单个数字是 0123456789ABCDEF
如果想要以为二进制的形式输出,没有对应的占位符,需要使用bin
a = 14 # 默认是十进制的数字
print(’%x’ % a) # e
print(’%X’ % a) # E
print(’%o’ % a) # 16 八进制的16
print(bin(a)) # 0b1110
print(’%c’ % 300) # Z
输入语句,就是接受用户输入的内容
python里使用 input 内置函数来接受用户输入的内容
变量 answer 用来接收用户输入的内容
接收用户输入内容,结果永远是一个字符串类型的数据
answer = input(‘小哥哥,请告诉我你的银行卡密码好不好?’)
print(‘用户输入的内容是%s’ % answer)
接收到用户输入的数据以后,是一个字符串类型
age = input(‘请输入您的年龄:’)
print(age) # “18”
print(type(age)) # <class ‘str’>
换行输出
\n 表示换行
print(‘hello’, ‘word’, sep=’\n’)
\ 表示转义字符,是对 \ 后面紧跟的字符进行转义
\n 表示换行
\t 表示一个制表符
\ 用来表示一个
print(‘hello\nworld’)
print(‘hello\tworld’)
print(‘hello\nworld’)
print(r’hello\nworld’)