第二章Python入门
第二章 Python入门
2.1.简介
Python是著名的“龟叔”(Guido van Rossum)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言
Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,
2.1.1.Python适合开发哪些类型的应用呢?
- 云计算
- 机器学习
- 科学运算
- 自动化运维
- 自动化测试
- 爬虫
- 数据分析
- GUI图形化
- Web开发等
2.1.2.Python有哪些缺点呢?
- 运行速度慢,和C程序相比非常慢,因为Python是解释型语言
- 代码不能加密。如果要发布你的Python程序,实际上就是发布源代码
2.1.3.python种类
- Cpython(推荐)
Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。 - Jyhton
Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。 - IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似) - PyPy
Python实现的Python,将Python的字节码字节码再编译成机器码。 - RubyPython、Brython 等。
2.1.4.Python版本
目前主流的Python版本有两大分类:
- 2.x ,很多公司依然在用 2.7 版本,但Python官方在 2020 年将停止对 Python 2 的支持。
- 3.x ,功能更加强大且修复了很多2版本中不合适之处(推荐使用)
2.2 环境的安装
- 解释器:py2 / py3 (环境变量)
- 开发工具:pycharm
2.3 编码
2.2.1 编码基础
- ascii,英文,8位表示一个东西,2**8
- unicode ,万国码,32位表示一个东西,2**32
- utf-8,给unicode压缩,用尽量少的位数表示一个东西,以8个位为单位
- gbk,国标,只能中国人自己用, 一个中文用16位,两个字节表示。
- gb2312
2.2.2 python编码相关
对于Python默认解释器编码:
- py2: ascii
- py3: utf-8
如果想要修改默认编码,则可以使用:
# -*- coding:utf-8 -*-
注意:对于操作文件时,要按照:以什么编写写入,就要用什么编码去打开。
2.2.3 单位转化
8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
常⽤到TB就够了
2.4 输入输出
2.4.1.输入
python2和python3输入的语法不一样
- python2
>>> my_input = raw_input('666')
666
- python3
>>> my_input = input('666')
666
2.4.2.输出
python2和python3输出的语法不一样
- python2
>>> print "hello"
hello
- python3
>>> print('hello')
hello
2.5 变量
问:为什么要有变量?
为某个值创建一个“外号”,以后在使用时候通过此外号就可以直接调用。
变量就是一个会变化的量,加载到内存中,方便调用。不仅可以是数字,还可以是任意数据类型
2.5.1规范
- 变量名只能包含:字母/数字/下划线
- 数字不能开头
- 不能是python的关键字。 [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
2.5.2 建议
- 见名知意
>>> name='zzy'
>>> print(name)
zzy
>>> age=24
>>> print(age)
24
- 用下划线连接
>>> gao_qizhi='zzy'
>>> print(gao_qizhi)
zzy
- 变量名建议不使用拼音和中文
- 变量的要具有意义
- 变量名不要过长
- 变量名要区分大小写
2.6 常量
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量
2.7 注释
- 单行注释,在一行的最开头添加"#"这个符号,解释器就会忽略这行代码
# print(hello)
- 多行注释,在代码块上一行,和最下面一行添加
'''
numb = 0
count = 1
while count < 100:
if count % 2 == 1:
numb -= count # total -= count
else:
numb += count # total += count
count += 1
print(numb)
'''
2.8 If条件语句
- if条件语句的基本结构
if语句的完整形式就是:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
·······
else:
<执行4>
if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。
2.9 while循环语句
2.9.1 while循环的格式
while 条件:
# 循环体
# 如果条件为真,那么循环则执行
# 如果条件为假,那么循环不执行
- 示例
1.输出 1-100 内的所有数字。
count = 0
while count < 100:
count = count + 1
print(count)
2.9.2 break关键字
作用:结束当前这个while循环
- 示例
##### 猜数字,设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环。
while True:
number = input('请输入一个数字:')
number = int(number)
if number > 66:
print('数字大了')
elif number == 66:
print('答对了')
break
else:
print('小了')
2.9.3 continue关键字
作用:退出当前循环,继续下一次循环
- 示例
#### 使用两种方法实现输出 1 2 3 4 5 6 8 9 10 。
count = 0
while count <= 9:
count = count + 1
if count == 7:
continue
print(count)
2.9.4 while else
作用:如果while 后的条件不再满足引发循环再继续,则执行else中的内容。如果是因为 break 引发的循环不再执行,则不执行else中的内容。
- 示例
count = 0
while count <= 5:
print(count)
count += 1
else:
print('窗前明月光,疑是地上霜')
2.10 for循环语句
2.11 格式化输出
"%" 运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%占位符,后面就跟几个变量或者值,顺序要对应好。
占位符 | 替换内容 |
---|---|
%s | 字符串 |
%d | 整数 |
%% | 显示单独的% |
- 示例1
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'
>>>
- 示例2
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入职业:')
hobby = input('请输入爱好:')
msg = '''
------------ info of Alex Li ----------
Name : %s
Age : %s
job : %s
Hobbie: %s
------------- end ----------------'''
print(msg%(name,age,job,hobby))
### 运行后 ###
请输入姓名:高启芝
请输入年龄:18
请输入职业:开发
请输入爱好:你懂的
------------ info of Alex Li ----------
Name : 高启芝
Age : 18
job : 开发
Hobbie: 你懂的
------------- end ----------------
- 示例3
num = input('>>>>')
s = '下载进度:%s%%'%(num)
print(s)
2.12.运算符
2.12.1算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 31 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -11 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 210 |
/ | 除 - x 除以 y | b / a 输出结果 2.1 |
% | 取模 - 返回除法的余数 | b % a 输出结果 1 |
** | 幂 - 返回x的y次幂 | a**b 为10的21次方 |
// | 取整除 - 向下取接近除数的整数 | 10//3 结果为3 |
2.12.2 比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 True。 |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 True。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 True。 |
2.12.3 赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
2.12.4 逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回x的值,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
1/
value=0 and 9
print(value) #0
value=1 and 9
print(value) #9
对于and:
第一个值如果是转换成布尔值是假,则value=第一值,没有必要再往后计算了
第一个值如果是转换成布尔值是真,则value=第二值,在做后续计算
2/
value=1 or 9 数字遇到or都会转换为布尔
print(value) #1
value=0 or 9
print(value) #9
对于or而言:
第一个值如果是转换成布尔值是真,则value=第一值,在做后续计算
第一个值如果是转换成布尔值是假,则value=第二值
2.12.5.成员运算
判断子元素是否在原字符串(字典,列表,集合)中
- in(判断子元素存在)
示例1
>>> value = "我是中国人"
>>> v1 = "中国" in value
>>> print(v1)
True
示例2
while True:
content = input('请输入内容:')
if "退钱" in content:
print('包含敏感字符')
else:
print(content)
break
- not in(判断子元素不存在)
2.12.6 优先级
在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
第二章Python入门的更多相关文章
- 第二章.python入门
2.1环境的安装 解释器:py2和py3 添加环境变量的作用:便于找到python解释器 开发工具:pycharm 2.2编码 2.2.1编码基础 ascii:只表示英文,8位表示一个元素,pytho ...
- 第二章 NIO入门
传统的同步阻塞式I/O编程 基于NIO的非阻塞编程 基于NIO2.0的异步非阻塞(AIO)编程 为什么要使用NIO编程 为什么选择Netty 第二章 NIO 入门 2.1 传统的BIO编程 2.1.1 ...
- [Python笔记][第二章Python序列-复杂的数据结构]
2016/1/27学习内容 第二章 Python序列-复杂的数据结构 堆 import heapq #添加元素进堆 heapq.heappush(heap,n) #小根堆堆顶 heapq.heappo ...
- [Python笔记][第二章Python序列-tuple,dict,set]
2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...
- [python笔记][第二章Python序列-list]
2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...
- 第二章 MySQL入门篇
第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...
- 第二章 python基础(一)
第一节 Python文件类型 源代码 Python源代码的文件以“py”为扩展名,由Python程序解释,不需要编译 字节代码 Python源文件经编译后生成的扩展名为“pyc”的文件 编译方法 im ...
- 算法导论 第一章and第二章(python)
算法导论 第一章 算法 输入--(算法)-->输出 解决的问题 识别DNA(排序,最长公共子序列,) # 确定一部分用法 互联网快速访问索引 电子商务(数值算 ...
- 第1章 python入门
1.1 python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开 ...
随机推荐
- LoadRunner 技巧之 检查点
LoadRunner 技巧之 检查点 判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTTP状态为 200 OK ,那么VuGen 就认为脚本正确地运行了,并且是运行通过的.在绝 ...
- CMake下,某些选项的后调整
编译安卓NDK库时,发现在R15的NDK编译出来的库,总是带了-g选项,导致附带调试,文件过大. 搜索一番后,结论是NDK的文件中有问题: https://github.com/android/ndk ...
- fcitx无法切换到中文(manjaro)
安装fcitx后不能切换到中文输入法,在.bashrc或者.profile中添加以下代码: #fcitx export GTK_IM_MODULE=fcitx export QT_IM_MODULE ...
- When specified, "proxy" in package.json must be a string.
react项目在package.json中配置proxy之后,报错 $ npm run start > img@ start D:\xx\src\img > react-scripts s ...
- js 数组去重方法总结
var arr = [1, 1, 'true', 'true', true, true, 15, 15, false, false, undefined, undefined, null, null, ...
- lua基础学习(四)
一,lua字符串 单引号间的一串字符. 双引号间的一串字符. [[和]]间的一串字符. 1.几个常用的转义字符 \b 退格 \f 换页 \n 换行 \r 回车 \t 跳到下一个tab位置 \0 ...
- 异常1(Exception)
父类 :Throwable(可抛出的) 有两个子类:Error(错误) Exception(异常) Error是所有错误类的父类,Exception是所有异常类的父类. 如图所示: 格式: ...
- Dubbo-zooKeeper入门讲解
1.Dubbo-zooKeeper史上最简单入门实例 2.Dubbo官方文档
- Comet OJ - Contest #5 E 迫真大游戏
怎么说,看了推到之后真的不难,事实上确实也蛮友好(可能咱就是想不出多项式题目的做法???),除了用到了分治法法塔就比较毒瘤 花了一个晚上以及一个上午做这么一道题...(还是太菜了) Result1 分 ...
- 一道并发和锁的golang面试题
今天面试golang碰到了一道考并发和锁的题目,没有完成,所以把它记录下来,仅为以后复习. 场景:在一个高并发的web服务器中,要限制IP的频繁访问.现模拟100个IP同时并发访问服务器,每个IP要重 ...