python基础1之python介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环
开启python之路
内容概要:
一、python介绍
二、安装
三、第一个python程序
四、变量和字符编码
五、用户输入
六、数据类型
七、一切皆对象
八、数据运算
九、if else 流程判断
十、while循环
十一、for循环
十二、break、continue
一、python介绍 |
python简介:
Python是著名的Guido van Rossum(吉多·范罗苏姆)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言,之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者,在最新的TIOBE排行榜python排名第五。
python分类:
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py
为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py
文件。由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。
Cpython
Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(.pyc文件),然后运行在Python虚拟机上,运行完毕之后释放内存,退出程序。
jython
Jython是个Python的一种实现方式,Jython编译Python代码为Java字节码,然后由JVM(Java虚拟机)执行,说白了此Python程序与Java程序没有区别,只是源代码不一样。
IronPython
IronPython是Python的C#实现,并且它将Python代码编译成C#中间代码(与Jython类似),然后运行,它与.NET语言的互操作性也非常好。
- pypy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
python代码运行过程:
二、安装 |
1.windows
1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python3
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python3,切记前面有分号
三、第一个python程序 |
学编程语言第一个python程序莫过于hello world,来看看python如何实现的。在linux下输入python命令,进入交互模式,对照版本敲以下代码:
# python2.x
print "hello world" #python3.x
print("hello world")
四、变量和字符编码 |
1.变量声明
name=“WD”
上述声明了变量名为name,值为WD。
2.变量的定义规则
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['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']
3.变量的赋值
name="WD"
name1=name
name="jack"
print(name,name1)
结果:
jack WD
上述结果表明,当有一个变量对另一个变量赋值的时候,改变前一个变量并不会影响后一个变量的值。
4.字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode。
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),在python2.x中如果是如下代码的话:
#!/usr/bin/env python
print "你好,世界"
报错:ascii码无法表示中文
应该显示的告诉python解释器,用什么编码来执行源代码,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*- print "你好,世界"
5.注释
单行注视:# 被注释内容
多行注释:""" 被注释内容 """
五、用户输入 |
1.python2.x
在python2.x版本中有两个用户输入函数input、raw_input
- raw_input
在python2中raw_input默认会将你输入的内容作为字符串处理,例如:
#!/usr/bin/env python
#_*_coding:utf-8_*_
name = raw_input("input your name:")
print type(name)
print("Hello " + name )
结果:
input your name:1111
<type 'str'>
Hello 1111
- input
而pyton2中的input默认会识别输入内容是数字还是字符串,并且当用户输入的内容为字符串的时候会把字符串当
作变量处理。例如:
#!/usr/bin/env python
#_*_coding:utf-8_*_
msg='WD'
name = input("input your name:")
print type(name)
print("Hello " + name )
结果:
input your name:msg
<type 'str'>
Hello WD
2.python3.x
python3中优化了用户输入,只用input方法,并且会把输入内容当作字符串处理。例如:
#!/usr/bin/env python
#_*_coding:utf-8_*_
name=input("input your name:")
print(type(name))
print(name)
结果:
input your name:WD
<class 'str'>
WD
六、数据类型 |
2 是一个整数的例子。
长整数 不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中表示复数是什么?。
int(整型)
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)
浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
“hello world”
4.bytes类型
Python3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。这是件好事,而在python2中是混用的,例如:在pytho2中使用socket网络编程传递字符串的时候可以直接传递字符串,但是在python3中必须将字符串转化为bytes类型。
转换原理图:
>>>'€20'.encode('utf-8')
b'\xe2\x82\xac20'
>>> b'\xe2\x82\xac20'.decode('utf-8')
'€20'
关于进制:
- 二进制,01
- 八进制,01234567
- 十进制,0123456789
- 十六进制,0123456789ABCDEF 二进制到16进制转换http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1
七、一切皆对象 |
对于Python,一切事物都是对象,对象基于类创建。
所以,以下这些值都是对象: 22、"WD"、['a', 'b', 'c'],并且是根据不同的类生成的对象。
八、数据运算 |
算数运算:
比较运算:
赋值运算:
逻辑运算:
成员运算:
身份运算:
位运算:
运算符优先级:
九、if else流程判断 |
基本语法:
#语法一
if 条件:
pass #语法二
if 条件:
pass
else:
pass #语法三
if 条件:
pass
elif 条件:
pass
...
else:
pass
示列一 if else:
1.模拟用户登录,帐号密码正确打印欢迎信息
2.错误打印用户名或者密码错误
#/usr/bin/env python
# -*- coding:utf-8 -*-
#Author:W-D
user="WD"
passwd="123qwe"
username=input("username:")
password=input("password:")
if user==username and passwd==password:
print("welcome!")
else:
print("Invalid username or password! ")
示列二:if elif else
1.猜数字,正确打印猜对
2.猜大打印猜大,猜小打印猜小
num=22
guess_num=int(input("guess number:"))
if guess_num > num:
print("Too bigger!")
elif guess_num < num:
print("Too smaller!")
else:
print("yes, you are right!")
if的三元运算:
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
示列:
a=22
b=33
number=a if a>b else b#三元运算
print(number)
结果:
33
十、while循环 |
while循环在如果没有明确的结束标志情况下会进入死循环,所以一般我们写while循环的时候需要结束条件。
基本语法:
while 结束条件:
pass #eg:
i=1
while i<10:#结束条件为i大于10
print(i)
i+=1
结果:
1
2
3
4
5
6
7
8
9
示列一:
还是猜数字游戏,现在我们让玩家连续猜,但是最多猜三次。
#/usr/bin/env python
# -*- coding:utf-8 -*-
#Author:W-D
count=0
while count<3:
num=22
guess_num=int(input("guess number:"))
if guess_num > num:
print("Too bigger!")
elif guess_num < num:
print("Too smaller!")
else:
print("yes, you are right!")
break#后续会提到break作用
count+=1
在python中while还有更无敌的语法,同样以上述代码为例,
#/usr/bin/env python
# -*- coding:utf-8 -*-
#Author:W-D
count=0
while count<3:
num=22
guess_num=int(input("guess number:"))
if guess_num > num:
print("Too bigger!")
elif guess_num < num:
print("Too smaller!")
else:
print("yes, you are right!")
break#后续会提到break作用
count+=1
else:#while条件中不满足走该逻辑
print("you have tried too many times!")
结果:
guess number:33
Too bigger!
guess number:33
Too bigger!
guess number:33
Too bigger!
you have tried too many times!
while之无敌语法
十一、for循环 |
for循环的条件:循环条件是一个可迭代的对象,如数组,字典,文件对象。
基本语法:
for 变量 in 可迭代的对象:
pass eg:
for i in range(0,10,2):
#0代表起始位置,2代表步长,10是结束位置,但不包括。
print(i)
结果:
0
2
4
6
8
十二、break、continue |
1.break在循环中的作用是跳出循环,循环终止,如我们前面列子中的,输入正确的数字,就停止循环。
2.continue在循环中的作用是跳出本次循环,循环还会继续。
continue应用场景:
1-10个数中循环打印,遇到5不打印。
for i in range(0,11,):
if i==5:
continue#当循环到5跳出本次循环不执行print
print(i)
python基础1之python介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环的更多相关文章
- python学习笔记(基础一:'hello world'、变量、字符编码)
第一个python程序: Hello World程序 windows命令行中输入:python,进入python交互器,也可以称为解释器. print("Hello World!" ...
- Python中的数据类型、变量、字符编码、输入输出、注释
数据类型 number(数字) 用于存储类型,通常分为int.long.float.complex: int:32位机器上占32位,取值范围为-231 ~ 231 - 1:64位机器上占64位,取值范 ...
- python基础系列教程——Python库的安装与卸载
python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...
- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda
---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...
- python基础31[常用模块介绍]
python基础31[常用模块介绍] python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的li ...
- python学习第三讲,python基础语法之注释,算数运算符,变量.
目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...
- [python之路]变量和字符编码
变量和字符编码 #变量##声明变量```#_*_coding:utf-8_*_ name = "Tom"```上述代码声明了一个变量,变量名为: name,变量name的值为:&q ...
- python基础系列教程——Python中的编码问题,中文乱码问题
python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...
- 015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码
015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码 本文知识点:Unicode编码以及字符如何表示? ASCII码是美国提出的标准信息 ...
随机推荐
- Why do collection classes appear
package com.itheima_01; import java.util.ArrayList; /* * 为什么会出现集合类: * 我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述 ...
- python实现简单的负载均衡
提到分发请求,相信大多数人首先会想到Nginx,Nginx作为一种多功能服务器,不仅提供了反向代理隐藏主机ip的能力,还拥有简单的缓存加速功能.当然Nginx最强大的功能还是分发请求,不仅提供了哈希, ...
- selenium 校验文件下载成功
转自: http://www.seleniumeasy.com/selenium-tutorials/verify-file-after-downloading-using-webdriver-jav ...
- EJB2.0 ejb-jar.xml配置文件详解
<ejb-jar><!--EJB发布描述器的根元素,它包含一个可选的EJB-JAR文件的描述,可选显示的名称,可选小图标的文件名,可选的大图标的文件名,必须的所有被包含的enterp ...
- JDOM 操作XML
http://www.cnblogs.com/hoojo/archive/2011/08/11/2134638.html 可扩展标记语言——eXtensible Markup Language 用户可 ...
- 如何在SAE搭建属于自己的黑盒xss安全测试平台
Author:雪碧 http://weibo.com/520613815 此篇文章技术含量不高,大牛不喜勿喷,Thx!写这篇文章主要是为了各位小伙伴在SAE搭建XSSING平台的时候少走点弯路(同志们 ...
- SQL SERVER 2005镜像配置(有无见证服务器都行)
我用的是没有见证的,但找的文章里有镜像,所以都做一下补充,两个网址做的参考, 之所以在从他们那再补充一次是为了怕有一天他们的文章被删了我这还有个备用的,这两篇写的不错 其他的都不行 特别乱,这是找的最 ...
- PyQt5 的几个核心模块作用
QtCore 包含了核心的非GUI功能.此模块用于处理时间.文件和目录.各种数据类型.流.URL.MIME类型.线程或进程. QtGui 包含类窗口系统集成.事件处理.二维图形.基本成像.字体和文 ...
- 使用PhotoShop将视频转为gif格式
由于文档中不方便上传视频,尤其是一些短视频,将其制作成gif格式更便于浏览,刚好PhotoShop中有这种功能,笔者在这里分享一下. 在PS中打开需要转换格式的视频文件,选择文件选项导出中的导出为We ...
- 2.Redis集群环境搭建
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 一.基本概念 1.redis集群是一个可以在多个节点之间进行数据共享的设施.redis集群提供了以下两个好处1 ...