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、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python27
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;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.
 >>> print('hello world')
hello world

可以看出输出一句 hello,world 只需要一行代码即可,但是有一个缺点,那就是如果不小心把窗口关闭了,代码就没有了,所以在实际工作中这种方式并不常用。

实际工作中,我们将代码保存在 .py文件中,保存为txt文件也行,但是就看不出来这是一个Python文件,所以不推荐这么做,然后在命令行下执行 python 1.py 就可以打印出来Hello,World。

 方法二、 用保存好的 py文件

 #!/usr/bin/env python      #必须声明是什么解释器来解释此脚本  解释器路径
# coding=utf-8 指定编码类型为utf-8 
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脚本时传入的参数

 #!/usr/bin/env python
# -*- coding: utf-8 -*- 4name = "wupeiqi"
上述代码声明了一个变量,变量名为: name,变量name的值为:"wupeiqi"

四、何为pyc文件

执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。

ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。(任何字节码通过反编译都可以得到代码)

五、注释

  当行注视:# 被注释内容

  多行注释:""" 被注释内容 """      or    '''被注释内容 '''

#开头的语句是注释,还可以使用'''xxx'''来进行多行注释,注释是给人看的,解释器会忽略掉注释。

注释是用来解释程序的作用和功能,以后再实际的工作中要养成写注释的良好习惯当语句以冒号:结尾时,后面的语句要缩进。

六、变量

字符串的值是不能被修改的,他在内存里是连续的,如果想改的话必须在后面预留所以不支持修改!
字符串特性,一旦修改,重新创建
例子:

 name1 = "szz"
name2 = name1
这里然后把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 -*-

name1 = "wupeiqi"
name2 = name1


1
2
name1 = "tianshuai"
name2 = "tianshuai"
name1 = ['tianshuai','eric','alex'
如果把name2 = name1

name1 这个集合增加一个,现在name2 变不变呢?会变的集合和字符串不同他的各个元素不是连续的,所以name2=name1指向后,name1增加 一个元素不会开辟一块新的空间,name2就会跟着改变。

七、输入、输出

python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。输出用print()

    name=input('szz007')
print('name')
'szz007'

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

 #!/usr/bin/env python
#-*- coding:uft-8-*- imporrt getss #将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码") #打印输入内容
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 "用户名和密码错误"

 需求二、根据用户输入内容输出其权限

 # 根据用户输入内容打印其权限

 # alex --> 超级管理员
# eric --> 普通管理员
# tony,rain --> 业务主管
# 其他 --> 普通用户 name = raw_input('请输入用户名:') if name == "alex":
print "超级管理员"
elif name == "eric":
print "普通管理员"
elif name == "tony" or name == "rain":
print "业务主管"
else:
print "普通用户"

九、while循环

 1、基本循环

while 条件:

     
    # 循环体
 
    # 如果条件为真,那么循环体则执行
    # 如果条件为假,那么循环体不执行
 
他的原理是:当条件为真的时候运行,当条件为假的时候停止!

最新文章

  1. 小丁带你走进git的世界二-工作区暂存区分支
  2. NIO与AIO,同步/异步,阻塞/非阻塞
  3. Centos6下rpm安装MySQL5.6
  4. 使用UDEV绑定ASM多路径磁盘
  5. linux rm 命令
  6. 普通树(有根树)C++
  7. 传输层之UDP
  8. ORACLE数据库多表关联查询效率问题解决方案
  9. Python模块----linecache
  10. Oracle临时表空间组
  11. go redigo的简单操作
  12. s5-14 链路状态路由选择
  13. java设计模式-----21、备忘录模式
  14. 【转】浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)
  15. node.js使用mysql模块的坑
  16. python版本共存
  17. linux 开机启动nginx
  18. prisma middleware 简化 graphql resolver 编写的类库
  19. Thrift辅助类,用于简化Thrift编程
  20. 15 Python 迭代器和生成器

热门文章

  1. 「CF894E」 Ralph and Mushrooms
  2. 一个HTTP数据包的奇幻之旅
  3. .NET中的字符串(1):字符串 - 特殊的引用类型
  4. python中的type和object详解
  5. 吴裕雄 Bootstrap 前端框架开发——简介
  6. same-security-traffic
  7. VSCODE 教程网
  8. 简单bat脚本
  9. 关于PGSQL连接问题
  10. struct和class定义类的区别