Python学习日志(二)
在网易云课堂看到小甲鱼的python视频,想起以前看就是看他的视频学C的虽然后来不了了之都怪我自己啦,于是决定跟着这个视频来学python啦!
- IDLE
IDLE其实是一个python shell ,是一个通过键入文本与程序交互的途径。
- 用python写一个猜数字小游戏
按F5可以直接运行
python程序真的戳中老夫的心了,语句后面不需要";",不需要声明变量,程序段也不需要{},嗨森!
需要注意:
- 虽然变量没有限定类型,但是input函数返回的类型是字符串,所以temp是字符串型,要强制转换成int。强制转换和其它语言不太一样,括号括的是变量,不是类型。
- 虽然程序段不需要{},但是要特别注意缩进,if语句和else后面都有":",":"后回车一般会自动缩进,手动缩进当然用Tab啦。不缩进会报错哒,没有规矩不成方圆嘛。
我们用xmind来画画程序流程图吧:
好丑啊我不管。就是一个简单的程序分支。
- BIF(built in function)内置函数
输入dir(__builtins__),回车查询python的内置函数;
输入help(函数名),回车查询函数相关信息。
- 变量
python变量的一些规则:
- 变量要先赋值再使用
- 变量名可以包括字母、数字、下划线,但变量名不能以数字开头(几乎学过的语言都是酱紫啊,因为它们都是C的延续,所以真的要注意养成书写规范的好习惯啊)
- 变量名可大写,可小写,但是python会区分大小写,Python和python是不一样的!
如图,变量是可以改变的,变量不需要声明,它可以是任何类型,这点上面有提到。
另外需要注意,字符串可以用""也可以用''括起来,用''时,如果字符里出现',要在其前面加转义符\,否则会报错。
如图,字符串里出现反斜杠可能会出错,当然我们可以用反反斜杠来规避这种错误,如果反斜杠很多,可以在字符串前面加r转换成原始字符串。
注意原始字符串末尾加\会出错,可以这样灵活处理:
得到一个跨越多行的字符串,可以使用三重引号字符串:
- 对之前的小游戏的改进
改进点:
- 引入random模块,由系统给定一个数字,而不是由编程人员设定。
- 用户只有三次机会,三次猜错立即结束游戏并且有相应提示。
这是我自己写的代码,不是参考答案,实现了好开心哈哈。这里的新知识点有:
- 引入random模块要在程序之前 import 它。
- randint()是random模块内的函数,它返回一个随机的整数,这里(1,10)是设定的范围。
- 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学习日志(二)的更多相关文章
- Python学习(二)Python 简介
Python 简介 官方指南及文档 Python2.7官方指南(中文版):http://pan.baidu.com/s/1dDm18xr Python3.4官方指南(中文版):http://pan.b ...
- Python学习日志9月13日
昨天的学习日志没有写,乱忙了一整天,政治电脑. 好奇心重,想要给电脑装上传说中LInux操作系统,各种小问题折腾到半夜,今天又折腾到晚上才真正的装上系统. 可是装上系统后又发现各种的不好用.虽然界面比 ...
- 编程语言与Python学习(二)
1.1 流程控制之for循环 1 迭代式循环:for,语法如下 for i in range(10): 缩进的代码块 2 break与continue(同上) 3 循环嵌套 for i in rang ...
- (10.1)Python学习笔记二
1.在项目工程中要模块化测试一个开发的功能,在测试通过后交付给项目组其他人员继续开发.要保证代码开发的性能和效率以及可扩展性. 2.项目工程中的文件夹分类要功能模块明确清晰,在python中引入某一个 ...
- python学习笔记(二)、字符串操作
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...
- python学习(二)
这几天脑子里一直在想一个应用,想以此来练习python.用一句话来概括这个应用的功能,大致表述是这样:自动采集全省各类公共文化机构网站上新发布的信息,并分类呈现.各类公共文化机构,是指公共图书馆.文化 ...
- Python学习日志_2017/09/08
今天早晨学习了<Head First :HTML and CSS>:学习了两个章节,感觉从基础学习特别的踏实,能看懂的同时踏踏实实的锻炼了基础的能力.我个人认为无论哪个行业,最重要的永远是 ...
- Python学习之二:Python 与 C 区别
引自http://www.lxway.com/181844.htm 从开始看Python到现在也有半个多月了,前后看了Python核心编程和Dive into Python两本书.话说半个月看两本,是 ...
- Python学习(二十六)—— Django基础一
转载自:http://www.cnblogs.com/liwenzhou/p/8258992.html 一.Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的 ...
随机推荐
- [转]undo log与redo log原理分析
数据库通常借助日志来实现事务,常见的有undo log.redo log,undo/redo log都能保证事务特性,这里主要是原子性和持久性,即事务相关的操作,要么全做,要么不做,并且修改的数据能得 ...
- 多个文件下载打包生成zip格式下载
这个多个文件下载生成zip格式必须先引用一个ICSharpCode.SharpZipLib.dll. 代码如下 //将多个文件打包成压缩文件zip格式下载 protected voi ...
- IIS部署遇到的一些问题
IIS部署时候会遇到一些具体的问题,记录一下.此处的部署环境为Windows Server 2012 64位版本 1.基本部署:角色和功能管理-->web服务器,勾选相应的服务与功能,然后安装即 ...
- JS学习:第二周——NO.4DOM库
DOM库封装练习 var utils = (function () { var flg = 'getComputedStyle' in window;//惰性思想的运用: function makeA ...
- Flask安装过程中“配置虚拟环境”步骤报错,找不到activate.bat
Run virtualenv venv --no-setuptools http://stackoverflow.com/questions/21826859/setting-up-a-virtual ...
- Json.net日期格式化
1. 全局设置,可以在App_Global中配置 JsonSerializerSettings setting = new JsonSerializerSettings(); JsonConvert. ...
- [BZOJ1552][Cerc2007]robotic sort
[BZOJ1552][Cerc2007]robotic sort 试题描述 输入 输入共两行,第一行为一个整数N,N表示物品的个数,1<=N<=100000.第二行为N个用空格隔开的正整数 ...
- 修复Linux Mint损坏的依赖
第一种: sudo apt-get install -f 第二种 sudo aptitude install -f 注: 要是某软件xxx依赖损坏了,可以这样 sudo aptitude instal ...
- 【Network】Neutron-Docker-K8S
Neutron-Docker-K8S openstack/neutron: Neutron is a virtual network service for Openstack. Neutron和SD ...
- highcharts使用笔记
1.legend取消点击事件: 饼图:plotOptions.pie.point.events.legendItemClick = function() {return false;} 其他,如:pl ...