【笔记】《python语言程序设计》—Python基本语法元素

一 前言

学习就是一个不断的自下而上,自上而下的过程。

前段时间,学着用python实现网站的数据爬取,隐约get到python的一些语法和用法,感觉就是语法不难,关键在于解决问题的思维。

这是需求驱动后的学习。接下来,就需要对python进行系统地了解。

很早之前搜知乎的时候,就搜到MOOC上的一门《python语言程序设计》课程,讲得很好,而且,我还下载了课件,溜了一遍,感觉就挺有趣的。

趁着有了实战经验,就把这门入门课刷了一遍。果然是门好课!很适合小白入门,并系统学习,整个教学过程循序渐进,深入浅出,提纲挈领,很有意思!

课程是北京理工大学嵩天老师的《python语言程序设计》课程,现在已经开了11次课了。课程每个小视频短则几分钟,最长也不超过20分钟,不容易劝退。每章讲解有复习回顾及小结,在平台python123上有每章的练习和测试,直接反馈结果,激发继续学下去的兴趣。

个人感觉,老师说话速度慢了些,调成了2倍速播放,然后,花了大约3天的时间,把所有的视频,课件,练习和测试都刷了一遍,感觉对python的了解更系统了!

趁热打铁,把每章的知识点和练习、测试再进行整理回顾一下。

以下内容均来自课程:《python语言程序设计》平台python123,感兴趣的看课程视频,亲自练习,效果更好~

二 知识点

1. 程序设计基本方法

  1. 计算机:是根据指令操作数据的设备;功能性(对数据的操作,表现为数据计算、输入输出处理和结果存储等);可编程性(根据一系列指令自动地、可预测地、准确地完成操作者的意图);
  2. 计算机的发展:按照摩尔定律,表现为指数方式;
  3. 摩尔定律(Moore’s Law):Intel公司创始人之一戈登·摩尔1965年提出;单位面积集成电路上可容纳晶体管的数量约每两年翻一番;CPU/GPU、内存、硬盘、电子产品价格等都遵循摩尔定律;
  4. 程序设计:是计算机可编程性的体现。
  5. 程序设计语言:是一种用于交互(交流)的人造语言;编程语言有超过600种,绝大部分都不再被使用;C语言诞生于1972年,是第一个被广泛使用的编程语言;Python语言诞生于1990年,是最流行最好用的编程语言;
  6. 编程语言的执行方式:包括编译和解释。编译:将源代码一次性转换成目标代码的过程(类似英文翻译);翻译:将源代码逐条转换成目标代码同时逐条运行的过程(类似实时的同声传译)。
  7. 两类编程语言:静态语言和脚本语言。静态语言:使用编译执行(C/C++语言,Java语言),程序运行速度更快;脚本语言:使用解释执行(Python、JavaScript、PHP),源代码维护灵活、跨多个操作系统平台。
  8. 程序的基本编写方法:I(输入)P(处理)O(输出);
  9. 求解计算问题的3个精简步骤:确定IPO(明确计算部分及功能边界);编写程序(将计算求解的设计变成现实);调试程序(确保程序按照正确逻辑能够正确运行);

2. Python开发环境配置

  1. 基本开发环境IDLE,官方提供,适用于小规模程序开发,交互式和文件式编程方式。
  2. 高级开发环境VSCode,微软出品,跨平台免费工具。

3. 实例1-温度转换

需求:摄氏度和华氏度两种温度体系的转换

Temp=input()
if Temp[-1] in ['C','c']:
    f=eval(Temp[0:-1])*1.8+32
    print('{:.2f}F'.format(f))
elif Temp[-1] in ['F','f']:
    c=(eval(Temp[0:-1])-32)/1.8
    print('{:.2f}C'.format(c))
else:
    print('输入格式错误')

4. Python程序语法元素分析

  1. 程序的格式框架
    1. 缩进:表达程序的格式框架。严格明确,缩进是语法的一部分,缩进不正确程序运行错误;所属关系,表达代码间包含和层次关系的唯一手段;长度一致,程序内一致即可,一般用4个空格或1个Tab。
    2. 注释:不被程序执行的辅助性说明信息。单行注释:以#开头,其后内容为注释。多行注释:以'''(3个单引号)开头和结尾;
  2. 命名与保留字
    1. 变量命名规则:大小写字母,数字,下划线和中文等字符及组合;注意:大小写敏感,首字符不能是数字,不与保留字相同;
    2. 保留字:被编程语言内部定义并保留使用的标识符。35个保留字,编程语言的基本单词,大小写敏感。and, as, assert, break, class, continue, def, elif, else, except, finally, for, from, if, import, in, is, lambda, not, or, pass, raise, return, try, while, with, yield, del, global, nonlocal, True, False, None, async, await
  3. 数据类型:供计算机程序理解的数据形式。整数类型;列表类型;字符串类型。
    1. 字符串类型:由一对单引号或一对双引号表示;是字符的有序序列,可以对其中的字符进行索引。
    2. 字符串的序号:正向递增序号[0:]和反向递减序号[-1:]。
    3. 字符串的使用:使用[]获取字符串中一个或多个字符。索引:返回字符串中的单个字符,<字符串>[M]。切片:返回字符串中的一段字符子串,<字符串>[M:N]
    4. 数字类型:整数和浮点数都是数字类型。
    5. 列表类型:由0个或多个数据组成的有序序列。使用[]表示,采用逗号,分隔各元素;使用保留字in判断一个元素是否在列表中。
  4. 语句与函数
    1. 赋值语句:由赋值符号=构成的一行代码。
    2. 分支语句:由判断条件决定程序运行方向的语句。使用保留字if, elif, else构成条件判断的分支结构。每个保留字所在行最后存在一个冒号:,语法的一部分。
    3. 函数:根据输入参数产生不同输出的功能过程。函数采用<函数名>(<参数>)方式使用。
  5. Python程序的输入输出
    1. 输入函数input():用户输入的信息以字符串类型保存在变量中;
    2. 输出函数print():字符串类型的一对引号仅在程序内部使用,输出无引号;
    3. 评估函数eval():去掉参数最外侧引号并执行余下语句的函数。

三 练习

1. 实例1-温度转换

同 实例1-温度转换;

2. Hello World I

描述:这是学习每种程序设计语言的第一个实例。输出Hello World,注意大小写。

print('Hello World')

3. 数字形式转换 I

描述:获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。0到9对应的中文字符分别是:零一二三四五六七八九

zw='零一二三四五六七八九'
num=input()
for i in num:
    print(zw[eval(i)],end='')

4. 温度转换 II

描述:温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)

C = ( F - 32 ) / 1.8

F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
(2) 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指华氏度87.65度;
(3) 不考虑异常输入的问题,输出保留小数点后两位;
(4) 使用input()获得测试用例输入时,不要增加提示字符串

temp=input()
if temp[0] in ['C','c']:
    f=eval(temp[1:])*1.8+32
    print('F{:.2f}'.format(f))
elif temp[0] in ['F','f']:
    c=(eval(temp[1:])-32)/1.8
    print('C{:.2f}'.format(c))
else:
    pass

5. 货币转换 I

描述:人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:
人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,符号和数值之间没有空格。
注意:
(1) 这是一个OJ题目,获得输入请使用input() ;
(2) 不提示输出格式错误,结果小数点后保留两位。

num=input()
if num[0:3] in ['RMB']:
    d=1/6.78*eval(num[3:])
    print('USD{:.2f}'.format(d))
elif num[0:3] in ['USD']:
    r=6.78*eval(num[3:])
    print('RMB{:.2f}'.format(r))
else:
    print()

三 测试

1.选择题

  1. Guido van Rossum正式对外发布Python版本的年份是:

    A 2008 B 2002 C 1998 D 1991

Python成功了,所以早年的开发历史也受到关注,以下是Guido自述的启动阶段时间表:

December, 1989 Implementation started

1990 Internal releases at CWI

February 20, 1991 0.9.0 (released to alt.sources)

February, 1991 0.9.1

鉴于Internal release不算对外发布,普遍认为Python语言诞生于1991年。

  1. 以下关于Python语言中“缩进”说法正确的是:

    A 缩进可以用在任何语句之后,表示语句间的包含关系

    B 缩进统一为4个空格

    C 缩进在程序中长度统一且强制使用

    D 缩进是非强制的,仅为了提高代码可读性

Python语言的缩进只要统一即可,不一定是4个空格(尽管这是惯例)。

  1. 以下不属于IPO模型的是:

    A Input B Program C Process D Output

IPO:Input Process Output

  1. 字符串是一个字符序列,给字符串s,以下表示s从右侧向左第三个字符的是:

    A s[0:-3] B s[:-3] C s[3] D s[-3]

字符串有正向递增和反向递减两套序号体系

  1. 以下不是Python语言合法命名的是:

    A MyGod5 B MyGod C _MyGod D 5MyGod

合法命名的首字符不能是数字。

  1. 在Python中,用于获取用户输入的函数是:

    A get() B eval() C print() D input()

get()不是Python内置函数,获得用户输入只有一种方式:input()。

  1. 下面不属于Python保留字的是:

    A elif B type C import D def

type不是Python保留字,而是内置函数 type()。

  1. 以下不是Python数据类型的是:

    A 整数 B 列表 C 字符串 D 实数

实数是数学中的概念,在Python中对应浮点数。

  1. 哪个选项给出的保留字不直接用于表示分支结构?

    A else B elif C if D in

if-elif-else是分支表达,in用来进行成员判断。

  1. 利用print()格式化输出,哪个选项用于控制浮点数的小数点后两位输出?

    A {:.2} B {:.2f} C {.2f} D {.2}

:.2f 哪一个都不能少

2.程序设计题

  1. Hello World的条件输出

描述:获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:
如果输入值是0,直接输出"Hello World"
如果输入值大于0,以两个字符一行方式输出"Hello World"(空格也是字符)
如果输入值小于0,以垂直方式输出"Hello World"

num=input()
op='Hello World'
if eval(num)==0:
    print(op)
elif eval(num)>0:
    s=''
    for i in range(len(op)):
        if (i+1)%2!=0:
            s=s+op[i]
            if len(op)==i+1:
                print(s)
        else:
            s=s+op[i]
            print(s)
            s=''
else:
    for i in op:
        print(i)
  1. 数值运算

描述:获得用户输入的一个字符串,格式如下:
M OP N
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)
根据OP,输出M OP N的运算结果,统一保存小数点后2位。
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。

s=input()
result=eval(s.replace(' ',''))
print('{:.2f}'.format(result))

【笔记】《python语言程序设计》—Python基本语法元素

【笔记】《python语言程序设计》—Python基本图形绘制

【笔记】《python语言程序设计》——基本数据类型

【笔记】《python语言程序设计》——程序的控制结构

【笔记】《python语言程序设计》——函数和代码复用

【笔记】《python语言程序设计》——组合数据类型

【笔记】《python语言程序设计》——文件和数据格式化

【笔记】《python语言程序设计》——程序设计方法学

【笔记】《python语言程序设计》——python计算生态概览

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

推荐阅读更多精彩内容

  • 关于课程: 课程作者为北京理工大学教授嵩天 课程视频连接地址为中国大学Mooc平台 课程辅助平台为Python12...
    唐代民间阅读 4,654评论 0 0
  • 前言 首先,本次立项项目只是为了做网络爬虫,本身不需要Python完整的知识链。因此,对于基本语法,我会浮光掠影,...
    OzanShareing阅读 1,148评论 3 2
  • 实在抱歉,第三天的内容鸽到了现在(虽然我也不知道在和谁道歉,毕竟现在也没有读者,可能是在跟第一天动笔的自己...
    十木_03阅读 1,036评论 0 1
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,325评论 0 2
  • 我心似海洋秋梦无痕已来 我心似狂潮秋风九里吹过来 我心似大海秋雨九里刮过来 我心似梦非梦秋梦来
    王密亮阅读 219评论 1 0