python 第一个课
1.变量:存储,调用
存储信息,调用控制,标示数据的名称或者类型
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
变量赋值
Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
name = 123
name1 = 456
name2 = name3 = name4 = 789
name5,name6,name7 = 1,2,3
print (name,name1,name2,name3,name4,name5,name6,name7)C:\Python35\python3.exe D:/s13/1day/test.py
123 456 789 789 789 1 2 3
命名规则:
模块名:
小写字母,单词之间用_分割
ad_stats.py
包名:
和模块名一样
类名:
单词首字母大写
AdStats
ConfigUtil
全局变量名(类变量,在java中相当于static变量):
大写字母,单词之间用_分割
NUMBER
COLOR_WRITE
普通变量:
小写字母,单词之间用_分割
this_is_a_var
实例变量:
以_开头,其他和普通变量一样
_price
_instance_var
私有实例变量(外部访问会报错):
以__开头(2个下划线),其他和普通变量一样
__private_var
专有变量:
__开头,__结尾,一般为python的自有变量,不要以这种方式命名
__doc__
__class__
普通函数:
和普通变量一样:
get_name()
count_number()
ad_stat()
私有函数(外部访问会报错):
以__开头(2个下划线),其他和普通函数一样
__get_name()
2.编码
在 python 源代码文件中,如果你有用到非ASCII字符,则需要在文件头部进行字符编码的声明,声明如下:
- # code: UTF-8
因为python 只检查 #、coding 和编码字符串,所以你可能回见到下面的声明方式,这是有些人为了美观等原因才这样写的:
- #-*- coding: UTF-8 -*-
常见编码介绍:
- GB2312编码:适用于汉字处理、汉字通信等系统之间的信息交换
- GBK编码:是汉字编码标准之一,是在 GB2312-80 标准基础上的内码扩展规范,使用了双字节编码
- ASCII编码:是对英语字符和二进制之间的关系做的统一规定
- Unicode编码:这是一种世界上所有字符的编码。当然了它没有规定的存储方式。
- UTF-8编码:是 Unicode Transformation Format - 8 bit 的缩写, UTF-8 是 Unicode 的一种实现方式。它是可变长的编码方式,可以使用 1~4 个字节表示一个字符,可根据不同的符号而变化字节长度。
编码转换:
Python内部的字符串一般都是 Unicode编码。代码中字符串的默认编码与代码文件本身的编码是一致的。所以要做一些编码转换通常是要以Unicode作为中间编码进行转换的,即先将其他编码的字符串解码(decode)成 Unicode,再从 Unicode编码(encode)成另一种编码。
- decode 的作用是将其他编码的字符串转换成 Unicode 编码,eg name.decode(“GB2312”),表示将GB2312编码的字符串name转换成Unicode编码
- encode 的作用是将Unicode编码转换成其他编码的字符串,eg name.encode(”GB2312“),表示将GB2312编码的字符串name转换成GB2312编码
所以在进行编码转换的时候必须先知道 name 是那种编码,然后 decode 成 Unicode 编码,最后载 encode 成需要编码的编码。当然了,如果 name 已经就是 Unicode 编码了,那么就不需要进行 decode 进行解码转换了,直接用 encode 就可以编码成你所需要的编码。值得注意的是:对 Unicode 进行编码和对 str 进行编码都是错误的。
具体的说就是:如果在UTF-8文件中,则这个字符串就是 UTF-8编码的。它的编码取决于当前的文本编码。当然了,GB2312文本的编码就是GB2312。要在同一个文本中进行两种编码的输出等操作就必须进行编码的转换,先用decode将文本原来的编码转换成Unicode,再用encode将编码转换成需要转换成的编码。eg:
由于内置函数 open() 打开文件时,read() 读取的是 str,读取后需要使用正确的编码格式进行 decode()。write() 写入时,如果参数是 Unicode,则需要使用你希望写入的编码进行 encode(),如果是其他编码格式的 str,则需要先用该 str 的编码进行 decode(),转成 Unicode 后再使用写入的编码进行 encode()。如果直接将 Unicode 作为参数传入 write() ,python 将先使用源代码文件声明的字符编码进行编码然后写入。
- # coding: UTF-8
- fp1 = open('test.txt', 'r')
- info1 = fp1.read()
- # 已知是 GBK 编码,解码成 Unicode
- tmp = info1.decode('GBK')
- fp2 = open('test.txt', 'w')
- # 编码成 UTF-8 编码的 str
- info2 = tmp.encode('UTF-8')
- fp2.write(info2)
- fp2.close()
获取编码的方式:
判断是 s 字符串否为Unicode,如果是返回True,不是返回False :
- isinstance(s, unicode)
下面代码可以获取系统默认编码:
- #!/usr/bin/env python
- #coding=utf-8
- import sys
- print sys.getdefaultencoding()
3.注释
一、单行注释
单行注释以#开头,例如:
print 6 #输出6
二、多行注释
(Python的注释只有针对于单行的注释(用#),这是一种变通的方法)
多行注释用三引号'''将注释括起来,例如:
'''
多行注释
多行注释
'''
4.格式化字符串
字符串格式化操作符(%)只适用于字符串类型,非常类似于C 语言里面的printf()函数的字符串格式化,甚至所用的符号都一样,都用百分号(%),并且支持所有printf()式的格式化操作。语法如下:
format_string % string_to_convert
format_string为格式标记字符串,形式为“%cdoe”;string_to_convert 为要格式化的字符串,如果是两个以上,则需要用小括号括起来.字符串格式化符号
格式化符号
说明%c
转换成字符(ASCII 码值,或者长度为一的字符串)%r
优先用repr()函数进行字符串转换(Python2.0新增)%s
优先用str()函数进行字符串转换%d / %i
转成有符号十进制数%u
转成无符号十进制数%o
转成无符号八进制数%x / %X
(Unsigned)转成无符号十六进制数(x / X 代表转换后的十六进制字符的大
小写)%e / %E
转成科学计数法(e / E控制输出e / E)%f / %F
转成浮点数(小数部分自然截断)%g / %G
%e和%f / %E和%F 的简写%%
输出%name = 'fengyang'
print ('please input your name %s'%(name) )
num = 123
print ('please input number %d'%(num))C:\Python35\python3.exe D:/s13/1day/test.py
please input your name fengyang
please input number 123
5.if else 语句
if 语句是用来检查一个条件:如果条件为真(true),我们运行一个语句块(你为if块),否则(else),我们执行另一个语句块(称为else块)。else子语句是可选的。
number = 23
guess = int(input(‘请输入一个整数:’)) #等待输入整数
if guess == number:
print('恭喜,你猜对了。') # 新块从这里开始
print('(但你没有获得任何奖品!)') # 新块在这里结束
elif guess < number:
print('不对,你猜的有点儿小') # 另一个块
else:
print('不对,你猜的有点大')
print('完成')
# if语句执行完后,最后的语句总是被执行
输出可能有以下三种情况:
请输入一个整数:50
不对,你猜的有点儿大
完成
请输入一个整数:22
不对,你猜的有点儿小
完成
请输入一个整数:23
恭喜,你猜对了。
(但你没有获得任何奖品!)
完成
6.for循环
for循环访问可迭代对象iterable的所有元素,iter_var被设置为可迭代对象的当前元素。for循环可用于序列类型,包括字符串、列表及元组,也可用于迭代器类型,迭代器对象有一个next()方法,调用后返回下一个条目,所有条目迭代完成后,迭代器引发一个StopIteration异常告诉程序循环结束,for语句在内部调用next()并捕获异常。
for something in XXXX:
语句块即表示对XXXX中的每一个元素,执行某些语句块,XXXX可以是列表,字典,元组,迭代器等等。
for i in range(10):
print (i)C:\Python35\python3.exe D:/s13/1day/test.py
0
1
2
3
4
5
6
7
8
9
7.常用模块初识
import getpass
getpass 模块提供了平台无关的在命令行下输入密码的方法.
getpass(prompt) 会显示提示字符串, 关闭键盘的屏幕反馈, 然后读取密码.
import os
import os
os.system('ipconfig')#在系统中执行命令
os.mkdir('lihao')#创建目录
cmd_res = os.popen('ipconfig').read()#读取命令赋值变量import sys
print (sys.path)#打印python路径

浙公网安备 33010602011771号