学到中年的python学习日记00--了解一点计算机基础

一、计算机基础

1.指令和程序

       计算机的硬件系统通常由五大部分组成,运算器、控制器、存储器、输入设备和输出设备组成。其中,运算器和控制器放在一起组成中央处理器,它的功能是程序指令的集合,程序就是将一系列的指令按照某种方式组织到一起,然后通过这些指令控制计算机处理我们输入输出的数据。时至今日计算机的各个功能硬件已经发展的越来越精密,处理器性能越来越强大,虽然处理速度快的一匹,正所谓万变不离其宗本质上任然属于“冯诺依曼结构”的计算机。

       “冯·诺依曼”关键点:1.指出将主要存储设备与中央处理器单元分开。2.指出将数据以二进制方式编码。使用逢二进一的计数法,进制是一个很神奇的东西但本质都是不变的。玛雅使用的二十进制,简单地说就是玛雅人小学时学习计数的时候估计会用上脚趾头。但计算机的发明本身都是在“冯·诺依曼结构”的计算机基础上,对于计算机来说二进制在物理元件上是容易实现的(高压等于1,低压等于0),大多数人类不需要使用二进制的思维模式,但学习二进制、八进制、十六进制和十进制之间的相互转换关系是掌握计算机计算方法逻辑的关键。

2.变量和类型

       在程序设计中,变量是一个很重要的载体。百度的解释计算机语言中存储计算结果的,也有解释说这是为即将要存储的、即将要调用的数据在内存当中开辟一块内存空间。变量的值可以具体根据我们使用的语言来选择读取和修改,这是所有计算的基础。这里说一个容易混淆的概念,我在初学变量的时候把变量理解成纸!或者理解称一元二次方程里面的未知数!其实这样的理解是不对的,纸张其实更像是TXT文本格式,而在我们平常做数学题时变量其实更多的是将变量带入到计算过程的,而在编程语言里,变量更多的是结果,因为计算机不负责结果,简单的说就是我经过一通断开断开会将你输入的数与数的计算指向一个结果,而计算机本身处理不了拿到结果后的操作。这也可以解释早期的C为什么面向过程的语言,在计算机早期主要的目的是将过程指向结果。随着计算机的发展,现在的编程更多的是将过程指向过程,我们不仅仅只需要一个简单的结果,我们需要更多的计算方法,而这一类方法我们把它叫做对象。 

       计算机能处理的数据类型有很多,除了数值之外还可以处理文本、图像、音频、视频等各种各样的数据,针对这些不同的数据就要设计不同的数据类型。而在python里有很多的数据类型,更重要的是允许我们自己定义数据类型,我们先来认识几种常用的数据类型。

  • 整型:python语言可以处理任意大小的整数(python2.x有int和long,python3中只有int类型),支持二进制、八进制、十进制和十六进制的表示法。
  • 浮点型:浮点数也是小数,🙋‍问为什么叫浮点数呢?答我也不知道。所以问问度娘,之所以被叫做浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可以变化的,浮点数除了数学写法(例:111.111)一般理解的是(1.11111*10^2)科学计数法可以表述为:1.11111E+02.
  • 字符串型:字符串是以单引号或者双引号括起来的任意文本,字符串还包含原始字符串表示法、字节字符串表示法、Unicode字符串表示法,而且可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号和三个双引号结尾)。
  • 布尔型:布尔值只有true、false两种值,要么是true,要么是false,在python中,可以直接用True、False表示布尔值,也可以通过布尔运算计算出来(例如3>2会产生布尔值True,而2==1会产生布尔值False)。
  • 复数型:好了,交给数学家去解决吧!

变量如何命名

       对于每一个变量我们都需要给他命名,就如同张三、李四、王二麻子和狗蛋儿,都是一些响亮的名字。在现实中名字是可以重复的,但是在python语言里不同的变量名代表的是不同的变量,变量命名时需要遵守一些特定的规则,还有一些习惯性命名操作需要知晓。

  • 必须遵守的规则:
    变量名由字母(广义的Uicode字符,不包括特殊字符)、数字和下划线构成,注意数字不能开头。
    大小写敏感
    不要跟关键字(有特殊含义的单词)和系统保留字(函数名、模块名等)
  • PEP 8要求:
    用小写字母拼写,多个单词用下划线连接。
    受保护的实例使用单个下划线开头。
    私有的实例属性用两个下划线开头。

编程时,命名是非常重要的一课,简单的来说这跟你九年义务教育学的英语扎不扎实室友直接关系的,当然要是不扎实也没多大关系比如(juzi、lizi、yazi、laozi、kongzi、zuanzi)这些命名也不是不可以!但是做到见其名闻其意对于长远来说是很重要的。

变量使用

在python中可以使用type()函数对变量类型进行检查。

//使用type()检查变量类型
>>> a = 100   >>> print(type(a))   <class 'int'>
>>> b = 200   >>> print(type(b))   <class 'int'>
>>> c = 12.12   >>> print(type(c))   <class 'float'>
>>> d = 1 + 5j   >>> print(type(d))   <class 'complex'>
>>> e = 'heiheihei'   >>> print(type(e))   <class 'str'>
>>> f = 4 > 6   >>> print(type(f))   <class 'bool'>

在python中命名的时候不需要定义变量类型,但是python中存在变量类型转换函数。

int() #将一个数值或字符串转换为整数,可以指定进制
float() #将一个字符串转换成浮点数
str() #将指定的对象转换城字符串格式,可以指定编码
chr() #将整数转换成该编码对应的字符串
ord() #将字符串(一个字符)转换成对应的编码(整数)

尝试通过键盘输入两个整数并实现两个整数的运算。

```
使用input()函数获取键盘的输入(字符串)
使用int()函数将输入的字符串转换成整数型
使用print()函数打印计算结果
```
a = int(input('a = '))
b = int(input('b = '))
print('%d + %d = %d' % (a, b, a + b))
print('%d - %d = %d' % (a, b, a - b))
print('%d * %d = %d' % (a, b, a * b))
print('%d / %d = %f' % (a, b, a / b))
print('%d // %d = %d' % (a, b, a // b))
print('%d %% %d = %d' % (a, b, a % b))
print('%d ** %d = %d' % (a, b, a ** b))

运算符

python的运算符多种多样,现在我们将运算符按照优先级从高到低的顺序列出所有的运算符,运算符的优先级指的是在运算符同时出现时计算机判断应该先做什么运算,接下来做什么运算。

运算符

描述

[] [:]下标、切片
**指数
~ + -按位取反,正负号
* / % //乘 除 模 整除
+ -加、减
>> <<左移、右移
按位与
^  |按位异、按位或
<= <  > =>小于等于、小于、大于、大于等于
== !=等于、不等于
is 、is not身份运算符
in、not in成员运算符
not or and逻辑运算符
= += -= *= /= %= //= **= &= `赋值

赋值运算符

赋值运算符应该是最为常见的运算符,它的作用是将右边的赋值给左边的变量。赋值运算符都是与=组合后的复合运算,在python里需要更简单的使用,尝试输出一下代码中a的值。

a = 10
b = 3
a += b        # 相当于:a = a + b
a *= a + 2    # 相当于:a = a * (a + 2)
print(a)

比较运算符和逻辑运算符

比较运算符实际上是把使用符号两边的值进行比较,包括(==!=<><=>=),比较运算会产生布尔值,这个比较容易理解,比较的结果就是优胜劣汰

逻辑运算符。逻辑运算其实不是很好理解,逻辑运算的理解就是去进行布尔运算,有三个逻辑运算符(and、or、not),and运算符连接两个布尔值,如果两个都是True,那么运算结果就是True;左右两边要是有一个为False,最终的运算结果都是False。那如果左边为False,不管右边是什么,都不会影响结果为False,在运算的时候右边的值会被跳过(短路处理),也就是在and运算符左边为False的时候,右边的表达式不会执行。or就是字面的意思“或者”,or运算符也会连接两个布尔值,如果两个布尔值有任意一个是True,那么最终的结果就是True。当然,or运算符也是有短路功能的,在它左边的布尔值为True的情况下,右边的表达式根本不会执行。not运算符的后面会跟上一个布尔值,它的作用是得到与该布尔值相反的值,也就是说,后面的布尔值如果是True运算结果就是False,而后面的布尔值如果是False则运算结果就是True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值