最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

python全栈开发,Day1(python介绍,变量,if,while)

运维笔记admin107浏览0评论

python全栈开发,Day1(python介绍,变量,if,while)

python全栈开发,Day1(python介绍,变量,if,while)

 python基础一

 

一,Python介绍

python的出生与应用
  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

 

目前Python主要应用领域:

  1. 云计算: 云计算最火的语言, 典型应用OpenStack
  2. WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  3. 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  4. 系统运维: 运维人员必备语言
  5. 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
  6. 图形GUI: PyQT, WxPython,TkInter

 

二,计算机基础

cpu:

  相当于人的大脑,运算与控制中心。
  速度 飞机
内存:

  时存储,供给CPU数据。
  速度 高铁。成本高,断电即消失。
硬盘:

  相当于电脑的数据库,存储着大量的数据,文件,音频文件。
  速度 走。成本低
操作系统:

  执行者,支配所有关系。windows,linux,mac...

 

python流行的原因
1.大量第三方库
2.Diango

 

三、python的历史

Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
python 2x和3x在同一年诞生,2x是10月,3是12月
python 2x:源码混乱,重复代码较多,冗余。
python 3x: 源码规范,崇尚优美、清晰,简单

四、python 2x,python 3x的区别

1.print方法有区别
python 3x print('内容')
python 2x print()或者print '内容'

2.编码方式不一样
python 3x 默认编码:utf-8
python 2x 默认编码: ascii 只包含英文字母和特殊字符以及数字
不支持中文
解决方式:
在头部增加

?
1 # -*- coding: utf-8 -*-

3.input不同
python 2x: raw_input()
python 3x: input()

五、开发语言的分类

解释型:当程序运行时,将代码一行一行的解释成二进制,再运行。
优点:排错快,开发效率高,可以跨平台
缺点:执行效率相对低
典型:python,

编译型:将代码一次性全部编译成二进制,然后运行。
缺点:排错慢,开发效率低,不能跨平台(操作系统)。
优点:执行效率高
典型:C

python的种类

CPython 默认解释器,转换为字节码,再转换为c语言010101...
IPython
PyPy 一次性全部转化成二进制,执行效率高。
Jython 把Python代码编译成Java字节码执行
IronPython

 

虽然解释器不同,但是写python代码的规则还是统一的。

六、运行第一个python程序

如果想要windows电脑同时有2个python环境,Python2.7和Python3.5

先安装python2.7

1、下载安装包
/
2、安装
默认安装路径:C:\python27

勾选添加环境变量

 

再安装python3.5

选择自定义安装,勾选添加环境变量

 安装路径设置为C:\Python35

进入目录C:\Python27

将python.exe更改为python2.exe

打开windows命令行模式

输入python2就是2.7版本

输入python就是3.5版本

新建一个test.py文件,内容如下

?
1 print ( '你好,世界' )

使用命令行方式

我的代码路径在E:\python_script\day1

进入目录,执行代码

使用python2执行

执行报错

因为默认python2x编码是ascii,不支持中文

在第一行添加

# -*- coding: utf-8 -*-

 再次执行,就可以了

 

如果python安装完成之后,发现执行python有问题时
可以把所有python版本卸载,重新安装一次,确保环境变量已经删除,文件后缀是可以显示的。

七、变量

变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用。

 

变量定义的规则:

1,变量必须由数字,字母,下划线任意组合。
2,变量不能以数字开头。
3,变量不能是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']
4,变量要具有可描述性。
5,变量不能是中文。
6,变量不能太长。
7,官方推荐:

?
1 2 3 4 5 6 #驼峰体 AgeOfOldboy = 56 NumberOfStudents = 100 #下划线 age_of_oldboy = 56 number_of_students = 80

 

 一般推荐使用第2种,也就是下划线的方式。

下面几个例子,判断变量名是否合法

?
1 2 3 4 5 6 w__ = 22 e_a_ = '太白' e$ = 'fdsa' - _ = '15' 2g = 33 __ = '老村长'

3,4,5行的变量,是不合法的,其他的都是合法的。

 

赋值计算
先计算等号右边的,把计算的值赋值给左边的

python是解释型语言,代码是一行一行执行
后面的变量会覆盖前面的。

?
1 2 3 4 5 age1 = 12 age2 = age1 age3 = age2 age2 = 6 print (age1,age2,age3)

执行输出

12 6 12

看一个图

age1~3的值,存储在内存中。当age2等于6时,age2值的指向就发生了变化,值为6

 

7.常量
常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量
默认全部大写的变量,称之为常量。

?
1 CITY_LIST = 'beijing'

 

11.注释
为什么有注释?
帮助你记起之前的代码,或者帮助别人看懂你的代码
不宜多,精就行

单行注释: #被注释内容
多行注释: '''被注释内容''' 或者 """被注释内容"""

?
1 2 3 4 5 6 7 8 9 10 #定义一个变量 name1 = "taibai" ''' 虞美人·碧苔深锁长门路 清代:王国维 碧苔深锁长门路。总为蛾眉误。自来积毁骨能销。何况真红一点臂砂娇。 妾身但使分明在。肯把朱颜悔。从今不复梦承恩。且自簪花坐赏镜中人。 '''

 

八、基础数据类型初始

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也不会导致严重后果了。
注意:在Python3里不再有long类型了,全都是int长整型

字符串类型(str)

在Python中,加了引号的字符都被认为是字符串!

?
1 2 msg = "My name is xiao,I'm 22 years old!" num = '12'

这种会出错

?
1 msg = "My name is xiao,I" m 22 "years old!"

双引号,只看2头的,从左到右


一般3个引号的,用到多行的场景,有行号符的。
一行很少用3个引号的

?
1 2 3 4 5 6 7 shi = ''' 马汗踏成泥,朝驰几万蹄。 雪中行地角,火处宿天倪。 塞迥心常怯,乡遥梦亦迷。 那知故园月,也到铁关西。 ''' print (shi)

执行输出

马汗踏成泥,朝驰几万蹄。
雪中行地角,火处宿天倪。
塞迥心常怯,乡遥梦亦迷。
那知故园月,也到铁关西。

 

3个单引号,没有赋值,是用来注释的

比如上面的唐诗《虞美人·碧苔深锁长门路》


字符串只能相加和相乘

 相加

?
1 2 3 4 n1 = '她的名字是' n2 = '南宫紫菱' n3 = n1 + n2 print (n3)

执行输出

她的名字是南宫紫菱

 

相乘

?
1 2 n1 = '我好爱你!' print (n1 * 3 )

执行输出

我好爱你!我好爱你!我好爱你!

九、布尔值(True,False)

布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断

?
1 print ( 1 > 2 )

执行输出

False

 

返回false
布尔值是不带引号的

?
1 print ( 1 > 2 and 3 < 4 or 4 > 5 )

执行输出

False

布尔值判断时,如果出现false,结果返回false

九、查看数据类型

使用type()方法

?
1 2 3 4 5 6 n1 = 'nan' n2 = False n3 = 'False' print ( type (n1)) print ( type (n2)) print ( type (n3))

执行输出

<class 'str'>
<class 'bool'>
<class 'str'>

 

十、用户交互 input

input出来的数据类型,都是字符串

?
1 2 3 4 5 name = input ( '请输入你的名字: ' ) age = input ( '请输入你的年龄: ' ) hobby = input ( '请输入你的爱好: ' ) s = '我的名字是' + name + '\n我的年龄是' + age + '\n我的爱好是' + hobby print (s)

执行效果

十一、if语句

第一种结构

?
1 2 if 条件:      结果

举例

?
1 2 if 3 > 2 :      print ( 666 )

执行输出

666

 

第二种结构

?
1 2 3 4 if 条件:      结果 else :      结果

举例

?
1 2 3 4 if 3 > 2 :      print ( 666 ) else :      print ( 333 )

执行输出

666

 

第三种结构

?
1 2 3 4 5 6 if 条件 1 :      结果 1 elif 条件 2 :      结果 2 elif 条件 3 :      结果 3

举例

?
1 2 3 4 5 6 7 choice = input ( '请输入你猜的数字:' ) if choice = = '2' :      print ( '我请你吃饭' ) elif choice = = '6' :      print ( '免一周作业' ) elif choice = = '3' :      print ( '一起去玩耍' )

执行输出

 

第4种结构

?
1 2 3 4 5 6 7 8 if 条件 1 :      结果 1 elif 条件 2 :      结果 2 elif 条件 3 :      结果 3 else :      结果 4

举例

?
1 2 3 4 5 6 7 8 9 choice = input ( '请输入你猜的数字:' ) if choice = = '2' :      print ( '我请你吃饭' ) elif choice = = '6' :      print ( '免一周作业' ) elif choice = = '3' :      print ( '一起去玩耍' ) else :      print ( '输入错误' )

执行输出

 

== 表示做比较
= 表示赋值

 

第5种结构

?
1 2 3 4 5 6 7 if 条件:      if 条件:          结果      else :          结果 else :      结果

只要需求存在,就可以一直嵌套if

举例

?
1 2 3 4 5 6 7 8 age = int ( input ( '请猜我的年龄:' )) if True :      if age = = 18 :          print ( '恭喜你猜对了' )      else :          print ( '这都看不出来...' ) else :      print ( '输入错误' )

执行输出

 

字符串之间不能比较大小,只能比较相等

int ---> str str(12)  转换成字符串,使用str()
str ---> int int(12) 全部由数字组成的字符串才能转化为数字

 

十二、while循环

用来执行重复的代码

?
1 2 3 4 5 while True :      print ( '痒' )      print ( '凉凉' )      print ( '体面' )      print ( '社会摇' )

执行输出


凉凉
体面
社会摇

...

 

while True 代表死循环

 

另外一个例子

?
1 2 3 4 5 print ( 222 ) while True :      print ( 111 )      print ( 333 ) print ( 444 )

执行输出

222

111
333

111
333

....

 

444永远不会执行

 

跳出循环的条件:
1.改变条件
2.breck

 

标志位flag


从1打印到100

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #标志位 flag = True #初始值 count = 1 while flag:      #第一次,打印初始值。之后打印自增值      print (count)      #循环一次,自增1      count = count + 1      #当等于100时,循环终止      if count = = 100 :          #打印100          print (count)          flag = False

执行输出

1

2

3

...

100

 

第2种写法

?
1 2 3 4 5 6 7 #初始值 count = 1 while count < 101 :      #第一次,打印初始值。之后打印自增值      print (count)      #循环一次,自增1      count = count + 1

执行输出,效果同上

 

breck:结束循环

 

?
1 2 3 4 5 while True :      print ( 111 )      print ( 222 )      break      print ( 333 )

执行输出

111

222


遇到breck,终止循环,下面的代码不执行

 

continue:结束本次循环,继续下一次循环。
continue 相当于见底了

?
1 2 3 4 5 while True :      print ( 111 )      print ( 222 )      continue      print ( 333 )

执行输出

111

222

....

 

333永远不会执行,为什么呢?遇到continue时,下面代码不执行,继续执行下一次循环,由于循环无法终止,所以最后一行代码,始终不会执行。

 

使用breck方式,打印1到100

?
1 2 3 4 5 6 7 8 9 10 #初始值 count = 1 while True :      #第一次,打印初始值。之后打印自增值      print (count)      #循环一次,自增1      count = count + 1      if count = = 101 :          break          执行输出 1 100

执行输出1到100

十三、相关练习题

1、使用while循环输入 1 2 3 4 5 6     8 9 10

2、求1-100的所有数的和

3、输出 1-100 内的所有奇数

4、输出 1-100 内的所有偶数

5、求1-2+3-4+5 ... 99的所有数的和

6、用户登陆(三次机会重试)

 

习题分析:

1、使用while循环输入 1 2 3 4 5 6 8 9 10

观察题目,发现1~10,少了一个数字7

思路如下:

1.先输出1~10

?
1 2 3 4 5 #初始值 count = 0 while count < 10 :      count = count + 1      print (count)

执行输出1~10

2.遇到7的时候,不执行print()就可以了

如果直接用breck,那么循环就终止了。这个时候,需要用到continue了

最终代码如下:

?
1 2 3 4 5 6 7 8 9 #初始值 count = 0 while count < 10 :      #自增1      count = count + 1      #判断为7时,终止此次循环,继续下一次循环      if count = = 7 :          continue      print (count)

执行输出

1
2
3
4
5
6
8
9
10

 

 2、求1-100的所有数的和

思路如下:

1.先输出1~100

?
1 2 3 4 5 6 #初始值 count = 0 while count < 100 :      #自增1      count = count + 1      print (count)

2.需要定义一个总和变量the_sum,每次要向前推进加数字,就比如吃豆游戏一样

?
1 2 3 4 5 6 7 8 9 10 11 #初始值 count = 0 #总和的初始值 the_sum = 0 while count < 100 :      #自增1      count = count + 1      the_sum = the_sum + count      print (the_sum) print (the_sum)

执行输出

1
3
6

...

5050

 

上面的代码,我把每次相加的结果给打印出来了。

0+1+2+3+....+100

计算过程是从左至右的,0+1=1,再计算1+2=3,再计算3+3=6....

解释一下代码执行过程

第一次count=0,the_sum=0 执行到第7行时,count=1,那么the_sum结果1,所以输出1

第二次count=1(因为whlie循环会迭代),执行到第7行时,count=2(1+1=2),那么the_sum的结果为3。因为第一次the_sum的值为1,所以这里为1+2=3

第三次,count=2,执行到第7行时,count=3,那么the_sum的结果为6(3+3=6)

所以最终结果为4950+100=5050

 

 3、输出 1-100 内的所有奇数

先来介绍求奇数和偶数的方法

用数字和2整除,取余 %
等于1为奇数
等于0为偶数

 

思路和第2题类似

1.先输出1~100

?
1 2 3 4 5 6 #初始值 count = 0 while count < 100 :      #自增1      count = count + 1      print (count)

执行输出1~100

2.用count和2整除取余,如果为1,输出数字,否则不输出

?
1 2 3 4 5 6 7 8 9 10 #初始值 count = 0 while count < 100 :      #自增1      count = count + 1      #取余,和2整除      yushu = count % 2      #为1表示奇数      if yushu = = 1 :          print (count)

执行输出

1
3
5

...

99

 

 4、输出 1-100 内的所有偶数

方法和第3题类似,把取余部分修改一下

?
1 2 3 4 5 6 7 8 9 10 #初始值 count = 0 while count < 100 :      #自增1      count = count + 1      #取余,和2整除      yushu = count % 2      #为0表示偶数      if yushu = = 0 :          print (count)

执行输出

2
4
6

...

100

 

 5、求1-2+3-4+5 ... 99的所有数的和

从这个公式可以发现出规律

为偶数的是做减法

为奇数的是做加法

 

思路:

在第二个题目基础上来做,第二个是1到100的求和

1.先把第2题的代码贴过来

2.在此基础上做一下稍微的改动,最终代码如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 初始值 count = 0 #计算最终值的初始值 final_value = 0 while count < 99 :      #自增1      count = count + 1      #取余,和2整除      yushu = count % 2      # 为1表示奇数      if yushu = = 1 :          # 做加法运算          final_value = final_value + count          print (final_value)      # 偶数      else :          # 做减法运算          final_value = final_value - count          print (final_value) print (final_value)

执行输出

1
-1
2

...

50

最终结果为50

 

注意: 这里最后一个数字是99,而不是100,所以是while count < 99

上面的代码,我把每次计算的结果给打印出来了。

0+1-2+3-4....+99

计算过程是从左至右的,0+1=1,再计算1-2=-1,再计算-1+3=2....

解释一下代码执行过程

第一次count=0,final_value=0,执行到第7行时,count=1。做取余计算 1 / 2,结果为1。

if判断等于1,结果成立,所以为奇数。计算等式final_value + count  也就是0+1=1,输出1

第二次count=1,final_value=1,执行到第7行时,count=2。做取余计算 2 / 2,结果为0。

if判断等于1,结果不成立,所以为偶数。计算等式final_value - count  也就是1-2=-1,输出-1

第三次count=2,final_value=-1,执行到第7行时,count=3。做取余计算 3 / 2,结果为1。

if判断等于1,结果成立,所以为奇数。计算等式final_value + count  也就是-1+3=2,输出2

所以最终结果为-49+99=50

 

6、用户登陆(三次机会重试)
思路

1.先来做简单的登录验证

?
1 2 3 4 5 6 username = input ( '请输入用户名:' ) password = input ( '请输入密码:' ) if username = = "xiao" and password = = '123' :      print ( 'ok' ) else :      print ( '登录失败超过三次,请稍后重试!' )

2.用while循环来执行输入框,可以无限次尝试登录

?
1 2 3 4 5 6 7 while True :      username = input ( '请输入用户名:' )      password = input ( '请输入密码:' )      if username = = "xiao" and password = = '123' :          print ( 'ok' )      else :          print ( '登录失败超过三次,请稍后重试!' )

3.做一个变量用来记录登录失败次数,初始为0,如果登录失败,次数加1。达到3次,直接结束程序。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #登录次数 logins = 0 while True :      #判断登录次数      if logins = = 3 :          print ( '登录失败超过三次,请稍后重试!' )          break      username = input ( '请输入用户名:' )      password = input ( '请输入密码:' )      #判断用户名和密码      if username = = "xiao" and password = = '123' :          print ( 'ok' )          break      else :          #次数加1          logins + = 1          print ( '登录失败!' )

执行输出

 


参考资料:

Django 基础教程

转载声明:
作者:肖祥
出处: /

转载于:.html

发布评论

评论列表(0)

  1. 暂无评论