Python学习笔记-Day02

Python学习笔记

Day_02-语言元素

指令和程序

计算机的硬件系统通常由五大部件构成,包括:运算器、控制器、存储器、输入设备和输出设备。其中,运算器和控制器放在一起就是我们通常所说的中央处理器,它的功能是执行各种运算和控制指令以及处理计算机软件中的数据.

我们通常所说的程序实际上就是指令的集合,我们程序就是将一系列的指令按照某种方式组织到一起,然后通过这些指令去控制计算机做我们想让它做的事情。

查询Baidu百科学习,什么是二进制?

二进制(binary)在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特(Bit,Binary digit的缩写).

二进制数据也是采用位置计数法,其位权是以2为底的幂。可以用公式表示为:

\qquad(a_{n-1}a_{n-2}...a_{1}a_{0}.a_{-1}a_{-2}a_{-m})_{2}= a_{n-1}\times2^{n-1}+a_{n-2}\times2^{n-2}... a_{1}\times2^{1}+a_{0}\times2^{0}+\\ \qquad \qquad \qquad \qquad \qquad \qquad \qquad a_{-1}\times2^{-1}+a_{-2}\times2^{-2}...+a_{-m}\times2^{-m}

例题:
1 将二进制(11011)_{2}转换为10进制。
如下:

(11011)_{2}=1\times2^{5-1}+1\times2^{5-2}+0\times2^{5-3}+1\times2^{5-4}+1\times2^{5-5}=27

2 将十进制数据(125)_{10}转换为二进制。
方法:“除2取余,逆序排列”
如下:

(125)_{10}=(1111101)_{2}

(129)_{10}=(10000001)_{2}

变量和类型

变量是数据存储的载体。程序中定义了不同类型的数据,方便进行读写。Python
语言中集中常用的数据类型如下表:

数据类型 说明 示例
整型 将Python 2.x中的int和long整合成一种;支持二进制、八进制、十进制、十六进制 100,0b100, 0o100 ,0x100
浮点型 即小数,因数字采用科学记数法时小数点可浮动而得名。除了数学写法,还支持科学记数法 123.456, 1.23456e2
字符串型 单引号或者双引号括起来的任意文本 'hello world', "hello world", "123"
布尔型 只有两个值,True或False 1<2,布尔值为True; 1==2,布尔值为False
复数型 和数学上的复数类似,不过讲i换成了j 1+2j

变量的命名

每个变量都需要给它命名,命名要遵守规则。python变量命名包括硬性规则和非硬性规则。

  • 硬性规则

  • 变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头。

  • 大小写敏感(大写的a和小写的A是两个不同的变量)。

  • 不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。

  • pep8要求

  • 用小写字母拼写,多个单词用下划线连接。

  • 受保护的实例属性用单个下划线开头(后面会讲到)。

  • 私有的实例属性用两个下划线开头(后面会讲到)

当然,给变量起名还需要做到见名知意。

变量的使用

参考作者提供的例题,编写程序,程序及运行结果如下:

"""
Day02,练习1,变量的命名即基本数学运算
使用变量保存数据并计算

version:0.1
author:Chris
"""

a = 125
b = 50

print(a+b) #结果:175
print(a-b) #结果:75
print(a*b) #结果:6250
print(a/b) #结果:2
print(a//b) #结果:2
print(a%b) #结果:25
print(a**b) #结果:700649232162408535461864791644958065640130970938257885878534141944895541342930300743319094181060791015625

以上例题中,前面四种运算符是显而易见的。第五种为“整除”运算符,第六种为“取模”运算符,第七种是“指数”运算符。运行结果我标记在了每个程序语句的后面。

思考:这里我们可以看出,因为变量a和变量b都是整型,运算的结果也全部为整型?这个我需要进一步进行学习和验证。

很好,有了上面的思考,结合原作者的例题,我使用type()函数来测试一下几种运算结果的类型。将程序修改成以下格式:

"""
Day02,练习1,变量的命名即基本数学运算
使用变量保存数据并计算

version:0.2
author:Chris
"""

a = 125
b = 50

print(a+b, type(a+b)) 
print(a-b,type(a-b)) 
print(a*b, type(a*b)) 
print(a/b, type(a/b)) 
print(a//b, type(a//b)) 
print(a%b, type(a%b)) 
print(a**b, type(a**b)) 

运行结果如下:

(175, <type 'int'>)
(75, <type 'int'>)
(6250, <type 'int'>)
(2, <type 'int'>)
(2, <type 'int'>)
(25, <type 'int'>)
(700649232162408535461864791644958065640130970938257885878534141944895541342930300743319094181060791015625L, <type 'long'>)

可以看出,两个整型变量进行运算以后,结果都是整形。

那么不同类型的变量怎样转换呢?
我们可以利用Python内置的函数进行转换。

int():将一个数值或字符串转换成整数,可以指定进制。

float():将一个字符串转换成浮点数。

str():将指定的对象转换成字符串形式,可以指定编码。

chr():将整数转换成该编码对应的字符串(一个字符)。

ord():将字符串(一个字符)转换成对应的编码(整数)。

继续在之前的程序中进行测试:

c = 123 #定义整型变量c
d = 1.23 #定义浮点型变量d
e = "h" #定义字符串型变量e
print(int(d))
# print(int(e))

print(float(c))
# print(float(e))

print(str(c))
print(str(d))

print(chr(c))
# print(chr(d))
# print(chr(e))

# print(ord(c))
# print(ord(d))
print(ord(e))

运行程序得到以下结果:

1
123.0
123
1.23
{
104

说明:测试程序中定义了三种变量类型,测试发现,int()函数的参数只能是整形或者浮点型,字符串型是不行的,比如程序中注释掉的 print(int(e)) ;float()函数的参数也只能是整型或浮点型,字符串型的也是不行的, print(float(e)) ; 而chr()函数的参数只能是整型;ord()函数的参数只能是字符串,而且只能说一个字符。

input()函数及占位符

input()函数可以通过输入设备输入变量值,然后程序接到输入的变量值之后才进行后续的计算或者操作。
其中%d是整数的占位符,%f是小数的占位符。因为%代表了占位符,那么如果程序中必须要同时用到占位符和运算符%时,运算%%%来代替。

使用例题:

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

运行,输入a=10,b=2.5运行结果如下:

a = 10
b = 2.5
10 + 2 = 12
10 - 2 = 8
10 * 2 = 20
10 / 2 = 5.000000
10 // 2 = 5
10 % 2 = 0
10 ** 2 = 100

对比运行结果,很清晰得就可以看到,print('%d + %d = %d' % (a, b, a + b)) 中,前半部分其实就是把运算式输出来了,而%后面的就是对应占位符要输出的变量值。当然,我记得%f占位符还可以控制浮点型数据的小数点后面的位数,好像是%.2f,将原程序中的除运算改成 print('%d / %d = %.2f' % (a, b, a / b)) 我试一下:

a = 10
b = 2.5
10 + 2 = 12
10 - 2 = 8
10 * 2 = 20
10 / 2 = 5.00
10 // 2 = 5
10 % 2 = 0
10 ** 2 = 100

成功了!😁😁😁

教程中两个练习:
第一个练习,我在上面的例题中加入如下语句:

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

运行,给a赋值为10,给b赋值为3,第一句执行后,a的值变成13,第二句语句执行后,a的值变成195。

第二个练习,主要认识逻辑运算,代码及执行结果如下:

flag0 = 1 == 1
flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not(1 != 2)

print('flag0 =', flag0)
print('flag1 =', flag1)
print('flag2 =', flag2)
print('flag3 =', flag3)
print('flag4 =', flag4)
print('flag5 =', flag5)

运行结果如下:

('flag0 =', True)
('flag1 =', True)
('flag2 =', False)
('flag3 =', False)
('flag4 =', True)
('flag5 =', False)

咦?代码的结果没问题,怎么格式出现问题了?容我想想!!

练习题

  1. 将华氏温度转换为摄氏温度。
  2. 输入圆的半径计算圆的周长和面积。
  • 习题1代码及运行结果:
"""
华氏温度转换为摄氏温度

Version: 0.1
Author: chris
"""

F = input("F = ")
C = (F - 32)/1.8
print('C = %.2f' %(C))

输出结果为:

F = 80
C = 26.67
  • 习题2:

源代码:

"""
输入半径r,计算圆的周长C和面积S

Version: 0.1
Author: chris
"""
r = input("r = ")
C = 2 * 3.14 * r
S = 3.14 * r * r
print('C = %.2f, S = %.2f' %(C, S))

运行结果如下:

r = 3.6
C = 22.61, S = 40.69

小结

这一节,我学习了变量和运算的基本知识,知识点不难,但是细节上还需要进一步的熟练。

接下来,我会自己找一些相关的练习来加强和提升这一部分内容。笔记暂时记录到这里。

最后再补充说一下,简书支持markdown格式输入太方便了。因为我的笔记就是Mac down写的,直接复制过来就可以了,太省心了!赞一个!!

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

推荐阅读更多精彩内容

  • 1.变量 变量定义不需要声明类型,定义时必须赋值 message="hello Python world" pri...
    蔷薇繁阅读 360评论 0 1
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 646评论 0 0
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    徵羽kid阅读 671评论 0 0
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,380评论 0 5
  • 文/文之缘 一个寂静的午后与你邂逅西里湖畔你淡雅高洁的姿态乱了西子的方寸你恬静地享受时光令阳光失魂你躲进树枝...
    文之缘阅读 163评论 0 1