学习Python第一周的总结

概述

  • Python是一种面向对象的解释性语言。

  • Python的优点很多,简单的可以总结为以下几点。

    • 简单和明确,做一件事只有一种方法。
    • 学习曲线低,与其他很多语言比上手更容易。
    • 开放源代码,拥有强大的社区和生态圈。
    • 解释型语言,完美的平台可移植性。
    • 支持两种主流的编程范式,可以使用面向对象和函数式编程。
    • 可扩展性和可嵌入性,可以调用C/C++代码也可以在C/C++中调用。
    • 代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。
  • Python的缺点主要集中在以下几点:

    • 执行效率低下,因此计算密集型任务可以由C/C++编写。
    • 代码无法加密,但是现在的公司很多都不是卖软件而是卖服务,这个问题慢慢会淡化。
    • 在开发时可以选择的框架太多,有选择的地方就有错误。
  • 今天当计算机硬件足够发达的时候,我们追求的更多的不是程序的执行效率,而是开发效。

  • 可以从Python的官方网站下载Python的安装程序(建议下载3.X的版本)以及查看相关文档。

说明:如果我们要在Linux环境下更新到Pyhon 3.X版本需要通过源代码的构件安装。

  • 如果想用交互式环境进行Python开发,那么我们可以使用Python的包管理工具pip来安装第三方模块ipython和jupyter。
    具体操作如下所示.
pip install ipython jupyter

python -m pip install ipython jupyter
  • 第一个Python的程序 - hello, world
"""
第一个Python程序
Version:0.1
Author: Kyle
Date: 2018-03-02
"""
#使用了内置的print函数打印字符.
print("hello world")
  • 如果要做团队开发以及要使用多文件模块协作的大项目,我们推荐使用pycharm的集成开发工具,我们可以从JetBrains公司的官方网站进行下载。

变量

  • 作用:数据的载体.

  • 命名:
    对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样。在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强 烈建议遵守的非硬性规则.

    • 硬性规则:
      • 变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头.
      • 大小写敏感(大写的a和小写的A是两个不同的变量).
      • 不要跟关键字(有特殊含义的单词)和系统保留字(如函数、模块等的名字)冲突
    • PEP 8要求(官方建议):
      • 用小写字母拼写,多个单词用下划线连接.
      • 受保护的实例属性用单个下划线开头.
      • 私有的实例属性用两个下划线开头.
  • 类型:整数,浮点数,字符串,布尔值等

特别说明: 在Python在语言层面没有定义常量的语法,但是我们可以通过把变量名用全大写来做隐含提示
全大写的变量要当做常量来看待在代码中不能修改它的值
经验提示: 符号常量总是优于字面常量

常用的部分运算符

描述 运算符
赋值运算符 =
算术运算符 + - * / // % **
关系运算符 == != <= < > >=
逻辑运算符 and or not
身份运算符 is is not

说明:在实际开发中,如果搞不清楚优先级可以使用括号来确保运算的执行顺序

分支结构

  • 定义:当程序执行到需要判断的时候,就会产生两个或者多个分支,而且这两个或者多个分支只有一个会被执行,那么这样的结构就叫做分支结构(选择结构).
  • 应用场景:分支结构应用在需要判断的程序中,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后我们要根据玩家得到分数来决定究竟是进入第二关还是告诉玩家“Game Over”.那么这个时候就应该用分支结构
  • if语句的使用
    • 在Python中,要构造分支结构可以使用if、elif和else关键字(系统保留的有特殊含义的字). 像if和else就是专门用于构造分支结构的关键字。

提示:在python的逻辑中关键字是可以是可以用作变量名的,但是一旦你用关键字作为了变量名,就会破坏关键字代表的函数或者模块导致该函数或者模块无法使用,所以我们不能用关键字作为变量名。

"""
判断闰年
Version:0.1
Author: Kyle
Date: 2018-03-04
"""
year = int(input('请输入一个年份:'))
if (year % 4 == 0 and yaer % 100 != 0) or year % 400 == 0:#如果搞不清楚优先级可以使用括号来确保运算的执行顺序
    print('%d年是闰年' % year)
else:
   print('%d年不是闰年' % year)  # %d整数占位符
  • 如果要构造出更多的分支,可以使用if…elif…else…结构。
"""
找出三个数中最大的一个数
Version:0.1
Author: Kyle
Date: 2018-03-04
"""
扁平写法
a = int(input())
b = int(input())
c = int(input())
max = a  #假设最大值是a
if b > max:
    max = b
if c > max:
    max = c
print('max = %d' % max)
(嵌套写法)当然根据实际开发的需要,分支结构是可以嵌套的,例如判断是否通关以后还要根据你获得的宝物或者道具的数量对你的表现给出等级(比如点亮两颗或三颗星星),那么我们就需要在if的内部构造出一个新的分支结构,同理elif和else中也可以再构造新的分支,我们称之为嵌套的分支结构,也就是说上面的代码也可以写成下面的样子。
a = int(input())
b = int(input())
c = int(input())
max = a
if b > max:
    max = b
    if c > max:
        max = c
print('max = %d' % max)

说明:扁平写法比嵌套写法更好,因为嵌套结构的嵌套层次多了之后会严重的影响代码的可读性,如果可以使用扁平化的结构就不要去用嵌套。

循环结构

应用场景:在程序中需要重复的执行某条或某些指令的时候。 在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。
for in 循环
如果明确的知道循环执行的次数或者是要对一个容器进行迭代(后面会讲到),那么我们推荐使用for-in循环。

'''
假设我有100元,公鸡五元一只,母鸡三元只,小鸡一元三只,100元买100只鸡,请问公鸡母鸡和小鸡各多少只

x + y + z == 100   x是公鸡数量  y是母鸡数量,z是小鸡数量
5 * x + 3 * y + z // 3 == 100
z % 3 == 0

Version:0.1
Author: Kyle
Date: 2018-03-04
穷举法 - 穷尽所有的可能性,直到找到正确答案。
'''
for x in range(21): 
    for y in range(34):
        for z in range(0, 100, 3):#此题的隐含条件是小鸡数量是3的整数倍
            if x + y + z == 100 and 5 * x + 3 * y + z // 3 == 100:
                print(x, y, z)
#减少嵌套的循环,提高效率                
for x in range(21):
    for y in range(34):
        z = 100 - x - y
        if 5 * x + 3 * y + z // 3 == 100 and z % 3 == 0:
            print(x, y, z)

while 循环
如果要构造不知道具体循环次数的循环结构,我们推荐使用while循环,while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True循环继续,表达式的值为False循环结束。

"""
猜数字游戏
计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了
Version:0.1
Author: Kyle
Date: 2018-03-04
"""
from random import randint
answer = randint(1, 100)
while True:
    number = int(input('请输入: '))
    if number < answer:
        print('大一点')
    elif number > answer:
        print('小一点')
    else:
        print('恭喜你猜对了!')
        break             #break只能终止它所在的那个循环

嵌套循环
和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构。

"""
打印100以内的质数
Version:0.1
Author: Kyle
Date: 2018-03-04
"""
from math import sqrt
for num in range(1,101):
    end = int(sqrt(num))
    is_prime = True
    for x in range(2, end + 1):
        if num % x == 0:
            is_prime = False
            break
    if is_prime and num != 1:
        print('%d是素数' % num, end = ' ')

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,042评论 25 707
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,128评论 1 44
  • 如果我们都用一只眼睛观望 拥有两只眼睛的人孤独吗 如果我们都迈出三条腿走路 双管齐下的旅行者恐慌吗 如果我们都徒手...
    周小改阅读 216评论 0 0
  • 系列简介:尝试用手绘简笔画来表现古诗,根据诗意编写微童话,希望大家喜欢。 绝句 【唐】杜甫 两个黄鹂鸣翠柳 一行白...
    晨曦怎么看阅读 10,536评论 18 20
  • 00 “我有所有小女孩都有的坏毛病,贪,嗔,痴。且不思悔改。” 我常常夏天往嘴里灌绿豆冰沙,粗糙的冰凌划过喉咙时,...
    绿豌豆芽阅读 301评论 0 1