本节内容:

1、Python介绍

2、Hello World程序

3、变量\字符编码

4、用户输入

5、if-else语句

6、循环语句

一、Python介绍

Python是一种动态解释性的强类型定义语言,主要应用在云计算,WEB开发,科学运算、人工智能,系统运维和金融等领域。

1、Python的优缺点

优点:

  • 简单,易懂。
  • 开发效率高,Python具有非常强大的第三方库。
  • 高级语言。
  • 可移植性——开源本质。
  • 可扩展性——可以把一段关键代码运行地更快或希望某些算法不公开,可把部分程序用C或C++编写,然后在Python程序中使用。
  • 可嵌入性。

缺点:

  • 速度相对较慢。
  • 代码不能加密。如果项目要求源代码必须是加密的,则不能使用Python。
  • 线程不能利用多CPU问题。

2、Python解释器

当我们编写Python代码时,我们得到的是一个包含python代码的以.py为扩展名的文本文件,要运行代码,就要靠Python解释器来执行.py文件。

以下为几种常用的Python解释器。

  • CPython——使用最广的Python解释器

  • IPython

  • PyPy

  • Jython

  • IronPython

3、Python 2 与 3的区别

In summary : Python 2.x is legacy, Python 3.x is the present and future of the language

Python 3.0 was released in 2008. The final 2.x version 2.7 release came out in mid-2010, with a statement of extended support for this end-of-life release. The 2.x branch will see no new major releases after that. 3.x is under active development and has already seen over five years of stable releases, including version 3.3 in 2012, 3.4 in 2014, and 3.5 in 2015. This means that all recent standard library improvements, for example, are only available by default in Python 3.x.

具体而言,Python 3 相较 2 的优势体现在 3 支持 Unicode support,也就是说,在Python 3 中不必再为繁杂的字符编码而烦恼,例如 3 可以直接写中文!

还有一个不同之处就是某些库在 3 中有了变化,具体如下:

old new
_winreg winreg
             ConfigParser configparser
copy_reg copyreg
Queue queue
SocketServer socketserver
markupbase _markupbase
repr reprlib
test.test_support test.support

二、Hello World程序

下面演示用Python编写helloworld程序,这里我使用的开发工具是pycharm。

 __author__ = 'Sunny Han'
print("Hello World!")

由此可见Python的简洁明了。

三、变量\字符编码 

1、变量——为了存放东西以便之后的调用

eg:

name="han shuo"

这里的name为变量名,han shuo为变量name的值。

变量定义应遵循一定的规则;

  • 变量名只能是字母、下划线或数字的任意组合。
  • 变量的第一个字符不能是数字。
  • 关键字不能充当变量名:'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'.
  • 定义变量名一定要有一定的含义,尽量不要胡编乱造,比如说这里我们想定义一个变量来代表Jake的年龄,我们写变量名“age_of_Jake”要好过变量名“ageofjake”。

变量的赋值:

eg:

 name="han shuo"
print("my name is",name)
name2=name
print(name2)
name="kobe"
print(name,name2)

以下为执行后的结果:

my name is han shuo

han shuo
kobe han shuo

为什么name值改成kobe后name2没有变化呢?这是因为name2指向的是之前name的值“han shuo”,而不是name自身,故name值变化后,name2并不会发生相应的变化。

注:python中没有常量的概念,若想表示常量,要将变量名全部大写。

eg:PIE=3.14159

2、字符编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)。ASCII主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。为了显示中文,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。

GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。

GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)。

eg:如果是输入以下代码的话,会报错,因为默认的ASCII无法表示中文。

__author__ = 'Sunny Han'
name="你好,世界!"
print(name)
 所以此处要告诉Python解释器要用什么编码来执行源代码。如下:
# -*- coding: utf-8 -*-
__author__ = 'Sunny Han'
name="你好,世界!"
print(name)

这样就能显示出结果了。

注释:

当行注视:# 被注释内容

  多行注释:""" 被注释内容 """  (三引号)

四、用户输入

1、简单输入方法:

__author__ = 'Sunny Han'
username=input("username:")
password=input("password:")
print(username,password)

输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

__author__ = 'Sunny Han'
import getpass
username=input("username:")
password=getpass.getpass("password:") print(username,password)
 2、相对复杂一些的输入输出过程
 eg1:
__author__ = 'Sunny Han'
name=input("name:")
age=input("age:")
job=input("job:")
salary=input("salary:")
info='''
----------------info of %s-----------
name:%s
age:%s
job:%s
salary:%s
'''%(name,name,age,job,salary)
print(info)

注意这里的age变量默认类型为字符串,假如将 age:%s改为age:%d(即整数类型),之前的age=input("age:")也应改为age=int(input("age:")),即将age变量强制转为整型变量。

具体如下:

name=input("name:")
age=int(input("age:"))
job=input("job:")
salary=input("salary:")
info='''
----------------info of %s-----------
name:%s
age:%d
job:%s
salary:%s
'''%(name,name,age,job,salary)
print(info)
 接下来以同样的例子介绍另一种用户输入的方法,如下:
eg2:
name=input("name:")
age=input("age:")
job=input("job:")
salary=input("salary:") info='''
-----------info of {_name}-----------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name=name,
_age=age,_job=job,
_salary=salary)
print(info)

eg3:

__author__ = 'Sunny Han'
name=input("name:")
age=input("age:")
job=input("job:")
salary=input("salary:")
info='''
---------info of {0}----------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
'''.format(name,age,job,salary)
print(info)

上例和eg1的执行结果是一样的。

五、if-else语句

 以下举两个例子来说明if-else语句的用法 
1、如何实验判断用户名和密码的正确与否,代码如下:

__author__ = 'Sunny Han'
_username="han"
_password="" username=input("username:")
password=input("password:")
if username==_username and password==_password: #and是“并”的意思,意思是当前后两个条件都成立的时候才成立
print("Welcom user {name} login...".format(name=username))#在这里换行时会自动缩进,如果手动改成顶格,会报错“IndentationError"缩进错误
else: #所有代码如果自己的级别就是最高的,比如这里的else,那么就应该顶格写
print("invalid username or password!")

2、如何判断某人年龄代码如下:

__author__ = 'Sunny Han'
age_of_jake=56 guess_age=int(input("guess_age:"))#这里默认输入的类型为字符型变量,故要强制转换字符类型,将其变成整型变量
if guess_age<age_of_jake:
print("think bigger!")
elif guess_age==age_of_jake:#这里的elif相当于C语言中的elseif
print("yes,you got it.")
else: #尤其要记住在编写代码时,要在所有的if else elif 语句后面加上冒号:
print("think smaller...")

六、循环语句

1、while循环语句

(1)先简单举一个while语句的例子,如下:

__author__ = 'Sunny Han'
count=0
while True:
print("count:",count)
count +=1
if count==5:
break

代码运行结果如下:

我们可以看到上述代码实现了依次输出0到5的功能。

 (2)在之前猜年龄代码的基础上再加一个输入次数的限制,并用while语句实现,如下:
__author__ = 'Sunny Han'
age_of_jake=56
count=0 #计数器
while count<3:
guess_age=int(input("guess_age:"))
if guess_age<age_of_jake:
print("think bigger!")
elif guess_age==age_of_jake:
print("yes,you got it.")
break #这里的break是结束循环,也就是说即便是没有输入够三次,也会结束循环,不会执行最后一个else语句
else:
print("think smaller...")
count +=1 #相当于count=count+1 else:
print("you have tried too many times! ")

这里实现了只允许输入三次的限制,这里要注意break的用法和意义。

 如果说在以上基础上在加入一个环节——是否想继续猜年龄,我们可以进一步优化代码如下:

__author__ = 'Sunny Han'
age_of_oldboy=56
count=0
while count<3:
guess_age=int(input("guess_age:"))
if guess_age<age_of_oldboy:
print("think bigger!")
elif guess_age==age_of_oldboy:
print("yes,you got it.")
break
else:
print("think smaller...")
count +=1
if count==3:
continue_confirm=input("do you want to keep guessing?")
if continue_confirm!="n":
count=0 #这里的令count重新等于0,就是说让代码重新回到其实部分(重新猜)
else:
break

2、for循环语句

 (1)简单示例如下:
__author__ = 'Sunny Han'
for i in range(0,10,2): #这里的0代表起始点,10代表终止点,2代表步长(步长默认为1)
print("loop",i) #循环输出0,2,4,6,8

(2)接下来我们举一个嵌套循环的例子,如下:

__author__ = 'Sunny Han'
for i in range(0,10):
print("---------",i)
for j in range(5): #这里和if else一样,一定记得在for语句后加冒号:
print(j)

上述代码实现了每输出一个i,都会输出5个j。

3、continue语句

 这里我们利用一个简单的for语句,来练习使用continue语句。代码如下:

__author__ = 'Sunny Han'
for i in range(0,10):
if i<5:
print("loop",i) #在这里如果i<5,会直接输出i
else:
continue #相应的,当i增加到大于5的话,会执行continue语句,也就是会结束本次循环,而不是全部终止循环
print("hehe..")

对上述代码进行调试后发现,即便当i>5时,代码仍会继续进行循环,i=6,7,8,9,10直到走完全部循环。

 但若将这里的continue改为break,从调试结果中我们就很明显能看到当执行到i大于等于5时,就直接跳出整个循环了,而continue只是跳出本次循环,这就是continue语句和break语句的不同之处。
 
 
 

Python3.5学习之旅——day1的更多相关文章

  1. Python3.5学习之旅——day2

    本节内容: 1.模块初识 2..pyc是什么? 3.Python的数据类型 4.三元运算 5.进制 6.byte类型 7.数据运算 8.列表 9.元组 10.课后练习 一.模块初识 由day1的学习我 ...

  2. Python3.5学习之旅——day6

    面向对象编程的学习 一.定义 首先跟大家介绍一位资深的程序员前辈说过的编程心得: 1.写重复代码是非常不好且低级的行为 2.完成的代码需要经常变更 所以根据以上两个心得,我们可以知道写的代码一定要遵循 ...

  3. Python3.5学习之旅——day5

    模块初识 一.定义 在python中,模块是用来实现某一特定功能的代码集合.其本质上就是以‘.py’结尾的python文件.例如某文件名为test.py,则模块名为test. 二.导入方法 我们在这一 ...

  4. Python3.5学习之旅——day4

    本节内容 1.装饰器 2.迭代器与生成器 3.内置方法 4.软件目录结构规范 一.装饰器 装饰器是一个用来装饰其他函数的工具,即为其他函数添加附加功能,其本质就是函数. 装饰器需要遵循的以下两个原则: ...

  5. Python3.5学习之旅——day3

    本节内容: 1.字符串操作 2.字典操作 3.集合 4.文件操作 5.字符编码与转码 6.函数与函数式编程 一.字符串操作 name='kobe' name.capitalize() 首字母大写 na ...

  6. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  7. Hadoop学习之旅二:HDFS

    本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...

  8. WCF学习之旅—第三个示例之二(二十八)

    上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Fram ...

  9. WCF学习之旅—第三个示例之三(二十九)

    上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...

随机推荐

  1. Nuxt 常用的配置项

    1:在开发项目时 我们可能会遇到端口被占用或者指定IP的情况, 在Nuxt中 我们可以在page.json 文件中进行配置,例如希望IP配置成125.0.0.1,端口设置1616 "conf ...

  2. PowerDesigner--comment和name互相复制

    1.comment复制到name 脚本代码: Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl Set ...

  3. 自己centos7成功的修改了主机名(记录了该改哪些文件)

    1.更改/etc/hosts 方法(1)可以直接的去更改这个文件,更改的格式:直接vi编辑器打开,之后直接写上自己想要的主机名字就好,不用写成键值对的形式 [root@localhost etc]# ...

  4. JS中的解构

    先看看数组解构: function fn(){ return [1,2,3]; } var [a,b,c] = fn(); console.log(a,b,c); // 1 2 3 var [d,,f ...

  5. Yii2框架 常用函数整合

    1.使用事务添加数据: public function create() { if($this->validate()) { $trans = Yii::$app->db->begi ...

  6. 关于package.json和package-lock.json的区别

    package.json文件记录你项目中所需要的所有模块.当你执行npm install的时候,node会先从package.json文件中读取所有dependencies信息,然后根据depende ...

  7. JavaScript 对象属性与方法

    对象的创建: 1 字面量创建 var obj = {a:1,b:2}; 2 构造函数创建 var obj = new Object(); obj.a = 1; obj.b = 2; 3 Object. ...

  8. vue动态生成组件

    单个组件引用,引入此文件js.全局使用,注册到vue的main文件Vue.prototype.create = Create create.js import Vue from 'vue';impor ...

  9. 2020年英特尔CPU供应短缺将持续

    导读 有着相当靠谱的爆料历史的台媒 DigiTimes 报道称,其预计英特尔的 CPU 供应短缺问题,将持续到 2020 年末.对于这样的预测,我们其实早已见怪不怪,毕竟该公司首席执行官 Bob Sw ...

  10. 【C语言】输入圆的半径,求解圆的周长和面积

    公式: C=2πr S=πr² 代码: #include<stdio.h> int main() { float r,PI; PI = 3.14159; printf("请输入圆 ...