第二篇:Python基本知识
这一篇我们简单的介绍一下Python学习的基本知识--》Python文件是如何运行、Python文件打开通常会有两行注释,那么这两行注释是什么;上篇提到的字节码,这些字节码都存储在哪?即pyc文件;还有基本知识-->变量、input、if条件语句、while循环语句、for循环等
一、运行:
在D:\python_test\ 目录下创建hello.py文件,其内容如下:
#! /user/bin/local/ python
# -*- coding:utf-8 -*- print("hello world")
在Windows下运行Python文件,通常有两种方式:
一、打开终端---> C:\Program Files\Python36\python3.exe D:\python_test\hello.py,即输入Python3的运行路径+文件路径,即可运行python文件。
二、运行Python解释器 -->即打开C:\Program Files\Python36\python.exe执行python文件。
而在Python内部执行过程如下图:
二、文件行
当我们打开Python文件时,通常会在文件的头部会有 #!/user/bin/local python,例:
#! /user/bin/local python print(" hello world")
这意味着在Linux下执行时,打开文件时先读取首行,并通过其找到python解释器的路径,以此来执行该文件。若直接在Linux终端输入 :
>>> python hello.py
则加不加该句则无所谓。
而针对使用以下方法打开python文件时,这时候写上Python解释器执行路径是非常有必要的:
>>> ./hello.py
即直接执行该文件,但打开是需注意文件的权限,若其他用户无法打开该文件,通过该命令--> chmod o+x hello.py来修改文件执行。
三、编码
当我们打开python文件,除了会写明python解释器的执行路径,还通常会表明读取该文件是以何种编码执行:
# -*- coding:utf-8 -*- print("hello world")
即表明该文件以utf-8的编码方式进行编码的,而在Python2中,默认是以ASCII码的编码方式进行编码的,故需加上这句来告诉Python解释器是以utf-8的编码方式进行编码的。
而在Python3中,文件的编码方式默认为utf-8编码方式。故加不加这句都无所谓。
常见的编码方式有以下几种:
ASCII码:ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
以下为ASCII码表:
需要注意的是:大写的英文字母即 A~Z--->二进制转十进制后为 65~90。
小写的英文字母即 a~z--->二进制转十进制后为 97~122.
GBK编码 -->GBK编码为GB2312编码的扩展,GBK全名为汉字内码扩展规范,英文名Chinese Internal Code Specification。K 即是“扩展”所对应的汉语拼音(KuoZhan)中“扩”字的声母。
它规定一个中文为两个字节。
Unicode编码-->Unicode-->万国码,即当许多国家开始使用计算机,无论是中国的GBK还是日本的JIS等都无法同时进行编码,容易出现乱码等问题,例如想用八国语言
来写一篇文章,这样无论是GBK还是JIS都无法实现,故发明了Unicode,它包含了各种国家的编码方式,它规定一个字符用两个或者两个以上的字节来表示。
utf-8编码-->它是Unicode编码的压缩和优化,由于Unicode规定一个字符用两个或者两个以上的字节表示,故以前美国人使用ASCII码的时候,一个英文用一个字节来表示,因此浪费了许多内存空间,故由此便
出现了utf-8,它规定一个英文用一个字节表示,一个中文用三个字节表示。
等等。。
四、注释
当行注释---> #
多行注释 --> ''' ''' 或者 """ """,注也可使用多行注释来代表多行字符串。例如
#这是当行注释 '''
这代表多行注释
第一句python代码---》hello world
'''
info ='''
name ='Little_five'
age ='22'
''
五、 pyc 文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
记得我们上篇介绍C语言和Python、以及Java的区别时提到:
C语言为编译型语言--》代码编译得到机器码,机器码在CPU上直接执行。
Python为编译型还是解释型并不明确,姑且为解释型。---》代码编译得到字节码,再通过虚拟机执行字节码转换成机器码,最后由CPU执行。
而这里所说的字节码便便被存储在pyc文件内。
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
六、变量
声明变量:变量即为值可以变化的量,由于值存储在内存中,故需要取出该值则需要一个指针,指向该内存地址能够取出该内存中的值,而这个指针就是变量名。
#! /user/bin/local python
#-*- coding:utf-8 -*- name = 'Little-five
上述代码声明了一个变量,变量名为: name,变量name的值为:"Little-five"
变量的作用:昵称,其代指内存里某个地址中保存的内容
声明变量名的规则:
1、变量只能使用数字、字母、下划线‘_’
2、数字不能作为变量名的开头
3、以下关键字不能声明为变量名
['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、同时需注意的是尽量不使用常用的类名、模块名等作为变量名
#!/usr/bin/local python
# -*- coding: utf-8 -*- name ="little_five"
_name ='xiaowu'
七、输入
input--->将用户输入的值变为字符串,并且可以将其赋值给某个变量名。例如:
#!/usr/bin/env python
# -*- coding: utf-8 -*- name = input("please enter your name--->:")
print(name)
八、if条件语句:
1、if ...else...
假设我们要创建一个简单的用户登入操作,可以让用户输入用户名和密码,若用户名和密码都正常,则登入成功,否则,登入失败。
#!/usr/bin/env python
# -*- coding: utf-8 -*- username ='little-five'
password =''
#让用户输入用户名和密码
user = input("pelase enter your username -->:")
passwd = input("please enter your password-->")
#如用户名和密码正确
if username ==user and password == passwd: #条件成立
print("welcome...")
else: #条件不成立
print("sorry,error username or password")
即 if 条件成立,执行 if 内的命令;否则条件不成立,则执行else内的命令。
2、if ... elif ...elif...else..
假设我们创建一个门票收取机制,即年龄小于5五岁的儿童免费和年龄大于60岁的老人可以打折,而其他的正常票价。如:
#!/usr/bin/env python
# -*- coding: utf-8 -*- age = input("enter your age-->:") if age<5:
price =0
elif age <18:
price =5
elif age <60:
price =10
else:
price =5
print("You admission cost is -->",price)
即 当出现并非两种情形是,if ..else..无法解决问题。故对于这种多种情况时我们可以使用 if ..elif .. eilf ......else..来应对。
当然if的用法不止这两种,还可以if ..if ...、if...elif...elif..等等这些,但是最终用法都与上述两种类似,就不一一列举了。
九、while循环
一、while循环的用法:
例如计算1-5的平法,可以使用while 循环:
#!/usr/bin/env python
# -*- coding: utf-8 -*- count =1
#当条件成立时则执行while下的循环体
while count <6:
res = count**2
count +=1
print (res)
#当条件不成立时,则执行else下的命令行
else:
print("count <1 or count >5")
二、break --> 终止该循环的所有循环,即跳出该循环去执行循环外的下一条命令
例如,我们需要让用户输入并打印用户输入的信息,当用户输入q可退出:
#!/usr/bin/env python
# -*- coding: utf- -*- message =''
while True:
#让用户不停的输入要发送的信息,直到输入q退出
mes = input("please input what you want tosend ,enter "q" to end the program."
if mes =="q":
break #终止该循环
message += mes
print(message)
三、continue -->终止该循环的当前循环,即跳出本次循环去执行下一次循环,跳至下一次循环的while判断
例如:我们需要打印1--9,除了7,这样我们就可以使用到continue了:
#!/usr/bin/env python
# -*- coding: utf- -*- count =
while count <= :
#当count等于7的时候,跳出本次循环。即循环内continue以下的命令都不执行
if count == :
continue
print(count)
count +=
十、for循环
for循环--->通常可以用来遍历各种可迭代对象,例如:字符串str、列表list、元组tuple、字典dict等等
#!/usr/bin/env python
# -*- coding: utf- -*- name =["James",Mike","liudehua","gutianle"
for item in name:
print(item
当然,for循环还可以用于匿名函数,这里不再介绍。
第二篇:Python基本知识的更多相关文章
- [转帖]虚拟内存探究 -- 第二篇:Python 字节
虚拟内存探究 -- 第二篇:Python 字节 http://blog.coderhuo.tech/2017/10/15/Virtual_Memory_python_bytes/ 是真看不懂哦 ...
- 第二篇 python进阶
目录 第二篇 python进阶 一 数字类型内置方法 二 字符串类型内置方法 三 列表类型内置方法(list) 四 元组类型内置方法(tuple) 五 字典内置方法 六 集合类型内置方法(self) ...
- 第二篇 Python运算符
1.算术运算符 运算符 描述 + 两个值相加 - 两个值相减 * 两个值相乘 / 两个值相除 % 得到两个数相除的余数 ** x**y得到x的y次幂 // 返回两个数相除商 ...
- 第二篇 Python图片处理模块PIL(pillow)
本篇包含:16.Point 17.Putalpha 18.Putdata 19.Putpalette 20.Putpixel 21.Quantize 22.R ...
- WEBBASE篇: 第二篇, HTML知识2
HTML知识2 <!doctype html> <html lang="en"> <head> <meta charset="U ...
- 接口测试框架——第二篇-python读取excel文件内容
今天完善excel_module.py文件,上代码: # coding: utf-8 import xlrd class ReadExcel(): def __init__(self, file_na ...
- 第二篇 Python初识别及变量名定义规范
第一个Python程序 可以打开notepad或者其他文本编辑器,输入:print("Hello Python!"),将文件保存到任意盘符下,后缀名是 .py 两种python程 ...
- 第二篇 - python爬取免费代理
代理的作用参考https://wenda.so.com/q/1361531401066511?src=140 免费代理很多,但也有很多不可用,所以我们可以用程序对其进行筛选.以能否访问百度为例. 1. ...
- AI之路,第二篇:python数学知识2
第二篇:python数学知识2 线性代数 导入相应的模块: >>> import numpy as np (数值处理模块)>>> import scipy ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
随机推荐
- WAV相关:从PCM16 Little Endian数据转WAV文件
数据格式 [0.0, -0.0, -0.0, 0.0, 0.0, 0.0, 5.960464477539063e-08, 5.960464477539063e-08, 1.19209289550781 ...
- 【NANO】引脚说明
http://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=489650&page=1
- NETTY option参数
Channel配置参数 (1).通用参数 CONNECT_TIMEOUT_MILLIS : Netty参数,连接超时毫秒数,默认值30000毫秒即30秒. MAX_MESSAGES_PER_REA ...
- IE6/IE7/IE8 JQuery下resize事件执行多次的解决方法
在使用jQuery的resize事件时发现每次改变浏览器的窗口大小时resize时间会执行两次,百度搜索了一下找到一个解决的方法,使用setTimeout来解决这个问题代码如下: var resize ...
- python的网络工具scapy
文档 https://scapy.readthedocs.io/en/latest/api/scapy.sendrecv.html 阅读文档 https://blog.csdn.net/Al_xin/ ...
- Django:ORM中ForeignKey外键关系分析
假设有两张表,Role和User,因为多个用户会对应一个角色,属于多对一关系,所以User中的rolename字段使用ForeignKey,第一个参数为要关联的表Role,第二个参数related_n ...
- 莫比乌斯反演求LCM的另一种做法
一个经典问题 求 \[ \sum_{k=1}^n\mathbb{lcm}(k,n) \] 一般的做法是使用\(\varphi(n)\)函数. 不经典的做法 \[ \begin{align*} \sum ...
- Mstar方案软件运行基本原理
1. MApp_Main.c里有个while(1)循环: 2. 通过 while(1)循环MApp_MultiTasks 里面的 MApp_ProcessUserInput 可以 得到 当前的 u8K ...
- PHP中奖概率写法
PHP中奖概率写法 <pre><?phpheader("Content-type: text/html; charset=utf-8");/* * 经典的概率算法 ...
- LeetCode 112. 路径总和(Path Sum) 10
112. 路径总和 112. Path Sum 题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节 ...