python学习 第一章 one day(补)
python入门
一、编写Hello,World
方法一、 进入解释器,实施输入并获取到执行结果
C:\Users\84535>python Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 19:29:22) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
打开cmd,输入Python,如果没有出现下面的实例,检查下python环境变量是否配置好。
配置方法如下:
1 1、下载安装包 2 https://www.python.org/downloads/ 3 2、安装 4 默认安装路径:C:\python27 5 3、配置环境变量 6 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 7 如:原来的值;C:\python27,切记前面有分号
实例如下:
C:\Users\84535>python Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 19:29:22) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information.
1 >>> print('hello world') 2 hello world
可以看出输出一句 hello,world 只需要一行代码即可,但是有一个缺点,那就是如果不小心把窗口关闭了,代码就没有了,所以在实际工作中这种方式并不常用。
实际工作中,我们将代码保存在 .py文件中,保存为txt文件也行,但是就看不出来这是一个Python文件,所以不推荐这么做,然后在命令行下执行 python 1.py 就可以打印出来Hello,World。
方法二、 用保存好的 py文件
1 #!/usr/bin/env python #必须声明是什么解释器来解释此脚本 解释器路径 2 # coding=utf-8 指定编码类型为utf-8 3 print("Hello,World")
第一行代码是在Linux下执行的时候,指出文件由python解释器来执行,
第二行是告诉解释器在加载文件时,采用何种编码,不加上这句的话,在python2中显示中文会出现乱码,在python3中则不会,所以你如果用的是windows而且用的是python3,其实可以不用加这两句,不过实际中还是建议加上这两句。到这里我们就用了两种方式输Hello,World。
补充:
二、编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...(能省就省)
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),所以如果不指定编码类型,如果有中文就会报错。
二、Python的工作过程
1、python 把代码读到内存 2、词法语法分析 3、放到编译器 ---》 生成字节码 4、执行字节码 ---》生成机器码 CPU执行
三、执行脚本传入参数
Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:
Python内部提供的模块
业内开源的模块
程序员自己开发的模块
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4name="wupeiqi"
上述代码声明了一个变量,变量名为: name,变量name的值为:"wupeiqi"
四、何为pyc文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。(任何字节码通过反编译都可以得到代码)
五、注释
当行注视:# 被注释内容
多行注释:""" 被注释内容 """ or '''被注释内容 '''
以#开头的语句是注释,还可以使用'''xxx'''来进行多行注释,注释是给人看的,解释器会忽略掉注释。
注释是用来解释程序的作用和功能,以后再实际的工作中要养成写注释的良好习惯。当语句以冒号:结尾时,后面的语句要缩进。
六、变量
字符串的值是不能被修改的,他在内存里是连续的,如果想改的话必须在后面预留所以不支持修改!
字符串特性,一旦修改,重新创建
例子:
1 name1 = "szz" 2 name2 = name1 3 这里然后把name1 = "szz007"
name2 变不变呢?其实是不变的结合上面的规则来:字符串特性,一旦修改,重新创建
name1 = "szz007" name1的值变了,他会重新开辟一块内存空间!
注:
|
1
2
|
#!/usr/bin/env python # -*- coding: utf-8 -*- name1 = "wupeiqi" name2 = "alex" |
这里虽然他们的内存地址是相同的但是:他们的原理是各自在内存里开辟了一块内存空间(两个空间),python给他进行了优化而已。有个池的概念(把你最常用的值做一个指向)!
|
1
2
|
#!/usr/bin/env python # -*- coding: utf-8 -*-
|
|
1
2
|
name1 = "tianshuai"name2 = "tianshuai"name1 = ['tianshuai','eric','alex'] 如果把name2 = name1 |
name1 这个集合增加一个,现在name2 变不变呢?会变的集合和字符串不同他的各个元素不是连续的,所以name2=name1指向后,name1增加 一个元素不会开辟一块新的空间,name2就会跟着改变。
七、输入、输出
python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。输出用print()
1 name=input('szz007') 2 print('name')
'szz007'
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
1 #!/usr/bin/env python 2 #-*- coding:uft-8-*- 3 4 imporrt getss 5 6 #将用户输入的内容赋值给 name 变量 7 pwd = getpass.getpass("请输入密码") 8 9 #打印输入内容 10 print pwd
八、流程控制
if...else 和 if....elif...elif..........else
需求一、用户登陆验证
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#!/usr/bin/env python# -*- coding: encoding -*- # 提示输入用户名和密码 # 验证用户名和密码# 如果错误,则输出用户名或密码错误# 如果成功,则输出 欢迎,XXX!import getpass name = raw_input('请输入用户名:')pwd = getpass.getpass('请输入密码:') if name == "alex" and pwd == "cmd": print "欢迎,alex!"else: print "用户名和密码错误" |
需求二、根据用户输入内容输出其权限
1 # 根据用户输入内容打印其权限 2 3 # alex --> 超级管理员 4 # eric --> 普通管理员 5 # tony,rain --> 业务主管 6 # 其他 --> 普通用户 7 8 9 name = raw_input('请输入用户名:') 10 11 12 if name == "alex": 13 print "超级管理员" 14 elif name == "eric": 15 print "普通管理员" 16 elif name == "tony" or name == "rain": 17 print "业务主管" 18 else: 19 print "普通用户"
九、while循环
1、基本循环
while 条件:
# 循环体 # 如果条件为真,那么循环体则执行 # 如果条件为假,那么循环体不执行


浙公网安备 33010602011771号