开启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,切记前面有分号

2.linux
linux下自带python,但是大多数是python2.6,请升级至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
六、数据类型
1、数字

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(整型)

  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点型)
      先扫盲 http://www.cnblogs.com/alex3714/articles/5895848.html 
  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
complex(复数)
  复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注:Python中存在小数字池:-5 ~ 257
 
2、布尔值
  真或假
  1 或 0
3、字符串
 “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介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环的更多相关文章

  1. python学习笔记(基础一:'hello world'、变量、字符编码)

    第一个python程序: Hello World程序 windows命令行中输入:python,进入python交互器,也可以称为解释器. print("Hello World!" ...

  2. Python中的数据类型、变量、字符编码、输入输出、注释

    数据类型 number(数字) 用于存储类型,通常分为int.long.float.complex: int:32位机器上占32位,取值范围为-231 ~ 231 - 1:64位机器上占64位,取值范 ...

  3. python基础系列教程——Python库的安装与卸载

    python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...

  4. python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda

    ---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...

  5. python基础31[常用模块介绍]

    python基础31[常用模块介绍]   python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的li ...

  6. python学习第三讲,python基础语法之注释,算数运算符,变量.

    目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...

  7. [python之路]变量和字符编码

    变量和字符编码 #变量##声明变量```#_*_coding:utf-8_*_ name = "Tom"```上述代码声明了一个变量,变量名为: name,变量name的值为:&q ...

  8. python基础系列教程——Python中的编码问题,中文乱码问题

    python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...

  9. 015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码

    015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码 本文知识点:Unicode编码以及字符如何表示? ASCII码是美国提出的标准信息 ...

随机推荐

  1. 语义slam用于高精地图和高精定位的一些想法

    最近一直在考虑语义slam在自动驾驶和辅助驾驶中的用法,研究了一下视觉为主的高精度地图+高精定位的模式,特别是mobileye的REM. 秉承先建图再定位的思路,在服务器端(云端)建图,在车端定位. ...

  2. selector设置按钮或者一些点击控件在点击时的效果

    <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="ht ...

  3. Jenkins自动化打包配置

    具体流程不细讲,教程很多 * 环境配置: * xmapp安装 * Jenkins.war丢到Tomcat目录中,配置Jenkins * 宿主机安装jdk,gradle,配置环境变量(在Jenkins的 ...

  4. 记一款bug管理系统(bugdone.cn)的开发过程(2) -如何做好登录界面

    一. 做了一个大胆的决定,官网首页便是登录界面 BugDone,Bug管理工具的定位就是一款非常易用的工具,所以我们没有像其它平台那样进官网首页都是一些功能和业务的介绍. 我们觉得方便用户快速进入工作 ...

  5. jboss eap6.1(5)(ejb升级)

    以前的项目是基于ejb2.x做的,ejb的配置文件为ejb-jar.xml和jboss.xml,现在把这个项目移到新版本服务器中的时候,报解析ejb-jar错误. 查阅许多资料才找到解决办法,原来jb ...

  6. 清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法

    如下解决了五个问题 1. 清空数据 2. 有外键也可以, 因为是逆向删除, 从最后一张表删除. 且使用的是delete, 因为truncate不能对有外键的表 3. 种子问题, 如果表存在种子重设为0 ...

  7. 【转】Ubuntu做日常开发电脑的系统是一种怎样的体验

    [原文]https://www.toutiao.com/i6594291159911105031/ Ubuntu 我现在已经基本不开windows了.学习娱乐开发基本都在Ubuntu 首先你要接受的是 ...

  8. 记录一次优化mysql查询语句的方法

    今天在数据库中导入大量的数据,大概有25万条,结果在查询的时候优化没有做好,因此导致查询意外停止或者是直接查询程序中止,很是苦恼.所以才有了优化查询的方法总结 1.首先是查看一下数据量 2.接下来按照 ...

  9. laravel 实现思路以及各组件原理

    laravel 内核是个IOC容器,IOC是把本来自己实例化的对象. 通过在容器里注册,通过容器来进行实例化. laravel队列用的是redis的列表来实现.

  10. 在学习前端的路上,立下一个Flag

    今天开始百度前端学习,以此为证