在网易云课堂看到小甲鱼的python视频,想起以前看就是看他的视频学C的虽然后来不了了之都怪我自己啦,于是决定跟着这个视频来学python啦!

  • IDLE

IDLE其实是一个python shell ,是一个通过键入文本与程序交互的途径。

  • 用python写一个猜数字小游戏

按F5可以直接运行

python程序真的戳中老夫的心了,语句后面不需要";",不需要声明变量,程序段也不需要{},嗨森!

需要注意:

  1. 虽然变量没有限定类型,但是input函数返回的类型是字符串,所以temp是字符串型,要强制转换成int。强制转换和其它语言不太一样,括号括的是变量,不是类型。
  2. 虽然程序段不需要{},但是要特别注意缩进,if语句和else后面都有":",":"后回车一般会自动缩进,手动缩进当然用Tab啦。不缩进会报错哒,没有规矩不成方圆嘛。

我们用xmind来画画程序流程图吧:

好丑啊我不管。就是一个简单的程序分支。

  • BIF(built in function)内置函数

输入dir(__builtins__),回车查询python的内置函数;

输入help(函数名),回车查询函数相关信息。

  • 变量

python变量的一些规则:

  1. 变量要先赋值再使用
  2. 变量名可以包括字母、数字、下划线,但变量名不能以数字开头(几乎学过的语言都是酱紫啊,因为它们都是C的延续,所以真的要注意养成书写规范的好习惯啊)
  3. 变量名可大写,可小写,但是python会区分大小写,Python和python是不一样的!

如图,变量是可以改变的,变量不需要声明,它可以是任何类型,这点上面有提到。

另外需要注意,字符串可以用""也可以用''括起来,用''时,如果字符里出现',要在其前面加转义符\,否则会报错。

如图,字符串里出现反斜杠可能会出错,当然我们可以用反反斜杠来规避这种错误,如果反斜杠很多,可以在字符串前面加r转换成原始字符串。

注意原始字符串末尾加\会出错,可以这样灵活处理:

得到一个跨越多行的字符串,可以使用三重引号字符串:

  • 对之前的小游戏的改进

改进点:

  1. 引入random模块,由系统给定一个数字,而不是由编程人员设定。
  2. 用户只有三次机会,三次猜错立即结束游戏并且有相应提示。

这是我自己写的代码,不是参考答案,实现了好开心哈哈。这里的新知识点有:

  1. 引入random模块要在程序之前 import 它。
  2. randint()是random模块内的函数,它返回一个随机的整数,这里(1,10)是设定的范围。
  3. and 逻辑操作符,可以将任意表达式连接在一起,并得到一个boolean类型变量。
  • 补充

语句过长可以使用反斜杠或者括号分解成几行

在同一行可以书写多个语句,用;隔开

前面说到and逻辑操作符,python提供了3个逻辑操作符,and、or和not。

and 和 or 都使用short-circuit逻辑,并返回决定结果的操作数——而不是返回Boolean量。那么为什么我们前面返回了Boolean量呢?我们来对比这两个例子就知道了:

我们可以看到,如果and在布尔上下文中,也就是说前后是判断条件,那么结果也返回布尔值,即TRUE或FALSE。

如果and前后是数字,那么表达式返回一个操作数,注意区别,C语言中&&操作符的结果是0或1。

同理可得,or在布尔上下文中,也返回TRUE或FALSE,否则返回操作数。

至于这个操作数怎么得来的我们就要理解一下懒逻辑(也就是short-circuit逻辑)了。

对于and来说,如果第一个操作数为假,那么就立即返回假。同样对于or来说,只要第一个为真,那么立即返回。(与是有0则0.或是有1则1)我们来举一斤栗子:

这就是python的短路逻辑(short-circuit logic)

逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值。这种行为同样也应用于 or 操作符。

  • 数据类型转换——int()、float()、string()互相转换

int()→float():直接在后面叫 .0

float()→int():直接截断,不会四舍五入

可以这样实现四舍五入:

先给浮点数+0.5再转换

str()→int()、float():要注意string必须是由数字组成的,另外也要注意变量不能用str命名,后果很严重啊。

int()、float()→str():直接加' '

  • 一些字符串的拓展函数

s.isalnum()  所有字符都是数字或者字母,为真返回 Ture,否则返回 False。
s.isalpha()  所有字符都是字母,为真返回 Ture,否则返回 False。
s.isdigit()  所有字符都是数字,为真返回 Ture,否则返回 False。
s.islower()  所有字符都是小写,为真返回 Ture,否则返回 False。
s.isupper()  所有字符都是大写,为真返回 Ture,否则返回 False。
s.istitle()  所有单词都是首字母大写,为真返回 Ture,否则返回 False。
s.isspace()  所有字符都是空白字符,为真返回 Ture,否则返回 False。

注意!!!这里的s是字符串。

我们可以用s.isdigit()来改进我们之前的小游戏:

我改了好久想哭,不过基本满意了,输入除数字外的字符或者超出1-10都会报错。但是还有待改善的点:

在判断数字小了还是大了之后重新输入的,就不会进行输入报错判断了。

其实逻辑也有点乱...

但是不打算一头撞死了,等我以后想到了在改进。

  • type()

返回参数类型

  • isinstance()

isinstance(obj,class_or_tuple,/):返回对象是否是类或其子类的实例。

用这个函数可以判断某一个变量是不是某个类型。

Python学习日志(二)的更多相关文章

  1. Python学习(二)Python 简介

    Python 简介 官方指南及文档 Python2.7官方指南(中文版):http://pan.baidu.com/s/1dDm18xr Python3.4官方指南(中文版):http://pan.b ...

  2. Python学习日志9月13日

    昨天的学习日志没有写,乱忙了一整天,政治电脑. 好奇心重,想要给电脑装上传说中LInux操作系统,各种小问题折腾到半夜,今天又折腾到晚上才真正的装上系统. 可是装上系统后又发现各种的不好用.虽然界面比 ...

  3. 编程语言与Python学习(二)

    1.1 流程控制之for循环 1 迭代式循环:for,语法如下 for i in range(10): 缩进的代码块 2 break与continue(同上) 3 循环嵌套 for i in rang ...

  4. (10.1)Python学习笔记二

    1.在项目工程中要模块化测试一个开发的功能,在测试通过后交付给项目组其他人员继续开发.要保证代码开发的性能和效率以及可扩展性. 2.项目工程中的文件夹分类要功能模块明确清晰,在python中引入某一个 ...

  5. python学习笔记(二)、字符串操作

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...

  6. python学习(二)

    这几天脑子里一直在想一个应用,想以此来练习python.用一句话来概括这个应用的功能,大致表述是这样:自动采集全省各类公共文化机构网站上新发布的信息,并分类呈现.各类公共文化机构,是指公共图书馆.文化 ...

  7. Python学习日志_2017/09/08

    今天早晨学习了<Head First :HTML and CSS>:学习了两个章节,感觉从基础学习特别的踏实,能看懂的同时踏踏实实的锻炼了基础的能力.我个人认为无论哪个行业,最重要的永远是 ...

  8. Python学习之二:Python 与 C 区别

    引自http://www.lxway.com/181844.htm 从开始看Python到现在也有半个多月了,前后看了Python核心编程和Dive into Python两本书.话说半个月看两本,是 ...

  9. Python学习(二十六)—— Django基础一

    转载自:http://www.cnblogs.com/liwenzhou/p/8258992.html 一.Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的 ...

随机推荐

  1. 前端应当了解的Web缓存知识

    缓存优点 通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备.对于前端开发者来说,浏览器充当了重要角色.除此外常见的还有各种各样的代理服务器也可以做缓存.当Web请求到达缓存时, ...

  2. 基于SSH框架的网上商城的质量属性

    常见质量属性 1.性能 性能就是一个东西有多快,通常指响应时间或延迟. 响应时间:从发出请求到收到响应所用的时间,比如用户点击网页中的超链接或桌面应用程序中的按钮 延迟:消息从A点到B点,通过你的系统 ...

  3. 消除左递归c语言文法

    <程序> -〉 <外部声明> | <函数定义><外部声明> -〉<头文件> | <变量> | <结构体> <头 ...

  4. jQuery stop()用法

    jQuery stop()的用法: stop(true)等价于stop(true,false): 停止被选元素的所有加入队列的动画. stop(true,true):停止被选元素的所有加入队列的动画, ...

  5. Android 数字签名

    一个ApK如果要安装到手机上,必须要一个数字签名,不过你是debug也好,release也好,这个数字签名来源一个叫做证书的东西,在我们debug的时候,开发工具已经帮我们生成了一个叫做debug.k ...

  6. 深入理解 JavaScript 变量的作用域和作用域链

    一个变量的作用域(scope)是程序源代码中定义这个变量的区域.简单的说,作用域就是变量与函数的可访问范围.全局变量拥有全局作用域,在JavaScript代码中的任何地方都有定义.局部变量是在函数体内 ...

  7. (转)System.Drawing.Color的颜色对照表

    经常使用System.Drawing.Color, 本篇介绍一下颜色与名称及RGB值的对应关系. 1. 颜色与名称的对照表(点击下图放大看): 2. 颜色与RGB值对照表: Color.AliceBl ...

  8. Idea+TestNg配置test-output输出

    说明:testNG的工程我是使用eclipse创建的,直接导入到idea中,运行test时不会生产test-output,只能在idea的控制台中查看运行结果,然后到处报告,经过不懈的百度终于找到怎么 ...

  9. AndroidStudio非法字符: '\ufeff'解决

    一. 问题解决办法 在昨天,帮助同学把他的Android项目从eclipse迁移到Android Studio上面的时候,编译时,Android Studio报了一个错误, ***.java Erro ...

  10. Mysql Sql语句令某字段值等于原值加上一个字符串

    MySQL连贯字符串不能利用加号(+),而利用concat. 比方在aa表的name字段前加字符'x',利用: update aa set name=concat('x',name); 替换: UPD ...