首页 > 代码库 > python基础
python基础
作为稍有经验的运维人员,没听说python的恐怕是极少的,有很多做运维的同事已经将python应用到日常的维护工作中。为了赶上时代的步伐,我也开始学习python,并将学习过的知识稍作总结,一来在日后的复习过程中节省时间,二来分享给志同道合的朋友,以求共同进步。下面开始正题。
目录:
1.python简介
2.字符编码
3.变量
4.输入与输出
5.条件判断与循环
6.列表、元组与字典
7.文件
第一部分:python简介
python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum与1989年发明,并与1991年产生第一个公开发行版。python是一门优雅且健壮的编程语言,它易用且功能强大,只要你能想到的事情,python都可以做。
第二部分:字符编码
ASCII,单字节(8个二进制位),可以表示256个不同字符。可表示所有英文字符和许多控制符号。最开始发明计算机的时候,这些字符足够使用。
UNICODE,计算机相对的普及后,256个字符不能够描述所有语言字符,因此国际组织制定了可以容纳世界上所有文字和符号的字符编码方案。这被称为UNICODE,UNICODE长度至少是2字节(16个二进制位),可变长度,因此在存放原来ASCII编码那一部分字符时浪费了空间。
UTF-8,压缩版的UNICODE,兼容ASCII,可变长度,最少1字节
gbk,一种汉字编码标准
第三部分:变量
编程语言中,你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,这个名字统称变量,下面写个例子。
1 >>>x = 3
以上x就是一个变量,x是变量名,3是变量的值,以后可以用x来代替3,比如:
1 >>> x * 5 2 15
我们输入x*5 得到 3×5的结果 15。
变量的值可以是任意可表达的值,但是变量名就有限制了,python中的变量名需要遵循一下规则:
1).变量名只能包含 字母、数字和下划线,且只能以字母或下划线开头,比如 strings、i、_name、try_3_time都是合法的变量,但 3times、5_trys就不是合法变量名,因为它们以数字开头了。
2).不能和系统的内置关键字重名,内置关键字可以通过导入keyword模块获取,如下:
1 >>>import keyword #导入keyword模块 2 >>>_buildin_keyword=keyword.kwlist #将关键字赋值给_buildin_keyword变量 3 >>>print(_buildin_keyword) #打印变量
4 [‘False‘, ‘None‘, ‘True‘, ‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘,‘del‘, \
‘elif‘, ‘else‘, ‘except‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, \
‘lambda‘, ‘nonlocal‘, ‘not‘, ‘or‘, ‘pass‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
变量代表的值有类型,可以通过python内置函数type()查看变量所代表的值的类型.
1 x = 3 #type(x)=<class ‘int‘> 整形 2 y=‘hello,world‘ #type(y)=<class ‘str‘> 字符串型 3 z=False #type(z)=<class ‘bool‘> bool型 4 h=None #type(h)=<class ‘NoneType‘> NoneType
变量赋值后就可以使用,如下:
1 >>>strings=‘hello,world‘ 2 >>>print(‘the output strings is :‘,strings) 3 the output strings is: hello,world
第四部分:输入与输出
1. 输出
python3中的输出由内置函数print()来执行,如下例子:
1 >>>print(‘this is a test‘) 2 this is a test
还可以结合上面说的变量来格式化字符串输出:
1 >>>name=‘xiao ming‘ 2 >>>print(‘my name is %s‘ % name) 3 my name is xiao ming
上面例子"%s"可以理解为"占位符",说明后面的变量要输出在这里,字符串后面的 ‘ %‘ 是不可缺少的,它告诉python,用后面对应的变量放到"占位符"位置。下面在列举其他print()的几个例子
1 >>>name=‘xiao ming‘ 2 >>>age=15 3 >>>print("My name is %s,I‘m %d years old" % (name,age)) 4 My name is xiao ming,I‘m 15 years old
2.输入
python3中输入可以由内置函数input()实现,input中可以设置输入前要输出的字符串,input()函数默认返回一个字符串,如果想转换返回为其他类型,使用其他工厂函数转换。如下例子
1 >>>age=input(‘Input your age here: ‘) 2 Input your age here: 15 #age=‘15‘,现在age是一个字符串,需要int()函数转换为整数 3 >>>print(‘Your are %d years old‘ % int(age)) 4 Your are 15 years old 5 >>>password=input(‘Input your password here: ‘) 6 Input your password here: 123456 #输出的密码显示出来了,大家都可以看到
针对输入密码这类问题,python内置了一个模块来处理,这个模块是getpass,getpass模块的getpass()函数会解决输入密码显示的问题。如下:
1 >>>import getpass 2 >>>password=getpass.getpass(‘Input your password here: ‘) 3 Input your password here: #现在输入密码不会显示出来了
例子:
提示输入用户名、密码和年龄,最后将用户名和年龄打印出来。
1 >>>import getpass #导入getpass模块 2 >>>name=input(‘Input your name: ‘) 3 Input your name: xiao ming #输入姓名 4 >>>password=getpass.getpass(‘Input your password: ‘) 5 Input your password: #输入密码 6 >>>age=input(‘Input your age: ‘) 7 Input your age: 15 #输入年龄 8 >>>print(‘Your name is %s,your are %d years old‘ % (name,int(age)) 9 Your name is xiao ming,your are 15 years old
第五部分:条件判断与循环
1.条件判断
python中的条件判断有if-else执行,语法如下:
1 if expression_1: 2 do_some_things_1 3 elif expression_2: 4 do_some_things_2 5 ... ... 6 else: 7 do_other_things
如上 expression_1 成立,则执行 do_some_things_1语句块, 如果 expression_2 成立,则执行 do_some_things_2,以此类推,如果所有的条件都不成立,则执行 do_other_things 语句块。
举个例子,输入分数,60分以下为“不及格”,60-70为“差”,70-80为“可”,80-90为“良”,90-100为“优”
1 score=int(input(‘Input score: ‘)) #提示用户输入分数 2 if score < 60: 3 print(‘不及格‘) 4 elif 60 <= score < 70: 5 print(‘差‘) 6 elif 70 <= score <80: 7 print(‘可‘) 8 elif 80 <= score < 90: 9 print(‘良‘) 10 elif 90 <= score <=100: 11 print(‘优‘) 12 else: 13 print(‘输入不识别‘)
2.循环
循环有for循环和while循环,for循环一般用于确定知道循环次数的情况,while循环一般用于无法计算循环次数的情况
for循环语法如下:
1 for iter_var in iterable: 2 suite_to_repeat
例子如下:
1 >>>for value in range(10): 2 . . . print(value,end=‘ ‘) 3 0 1 2 3 4 5 6 7 8 9
while循环语法如下:
1 while expression: 2 suite_to_repeat
例子如下,用户输入不是‘q’的情况下,要求用户一直输入:
1 choice=input(‘Input your choice (q to quit): ‘) 2 while True: 3 if choice!=‘q‘: 4 print(‘continue‘) 5 elif choice==‘q‘: 6 print(‘break‘) 7 break 8 choice=input(‘Input your choice (q to quit): ‘)
第六步分:列表、元组与字典
1.列表
示例:
1 >>> li = [1,2,False,‘xiaoming‘]
很多时候我们需要一个数据结构能够存储相同或不同类型的多个值。比如,描述一个果篮,果篮中有苹果、梨、桃子、西瓜等等。并且果篮中可以随时放进其他水果。python中有了一个这样的数据结构:列表(list)。以上面的果篮为例子,我可以这样写:
1 >>>fruit_basket=[‘apple‘,‘pear‘,‘peach‘,‘watermelon‘]
好了一个果篮的列表就创建好了,列表两侧由’ [ ‘ 和 ’ ] ‘ 扩起来,在python中有‘ [ ‘ 和 ‘ ] ‘包含的元素就形成一个列表。
下面就结合例子学习下列表的常用属性:
1 >>>fruit_basket[0] #访问列表的第一个元素,列表的索引从0开始,即返回索引为0处的元素 2 ’apple‘ 3 >>>fruit_basket[0:2] #访问列表的第一个和第二个元素,到索引为2时结束,不包含索引2, 4 [‘apple‘,‘pear‘] 5 >>>fruit_basket[0:3:2] #访问列表第一个元素到第三个元素,隔一个元素显示一个元素,即只返回第一个元素,第三个元素,fruit_basket[0] fruit_basket[2] 6 [‘apple‘,‘peach‘] 7 >>>fruit_basket.append(‘kiwi‘) # 向fruit_brasket中 添加 “猕猴桃” [‘apple‘,pear‘,‘peach‘,‘watermelon‘,‘kiwi‘] 8 >>>del fruit_basket[0] #删除列表索引为0的元素,删除‘apple‘,列表现在成为 [‘pear‘,‘peach‘,‘watermelon‘,‘kiwi‘]
列表几个常用的函数 len() max() min() sorted() reversed() 下面举例子:
1 >>>nums=[1,3,5,7,9,2,4,6,8] 2 >>>len(nums) #输出9 3 >>>max(nums) # 输出9 4 >>>min(nums) #输出1 5 >>>sorted_nums = sorted(nums) #sorted_nums=[1,2,3,4,5,6,7,8,9] 6 >>>reversed_nums=reversed(nums) #reversed_nums=[8,6,4,2,9,7,5,3,1]
遍历列表:
1 >>>for value in nums: 2 . . . print(value,end=‘,‘) 3 >>>1,3,5,7,9,2,4,6,8,
2.元组
示例:
1 tu = (1,2,‘name‘,‘xiaoming‘,False)
元组和列表外表看起来很相似,不同的是列表用放括号扩起来,元组用元括号扩起来。元组是不可变的,即元组不能增加元素也不能删除元素。
元组几个常用的函数count() index() 下面举例子:
1 >>> tu = (‘a‘,‘b‘,‘user‘,‘name‘,‘a‘,1,100) 2 >>> tu.count(‘a‘) #获得‘a‘的数量 3 2 4 >>> tu.index(‘a‘) #获取第一个’a‘的索引 5 0
3.字典
示例:
1 >>> dic = {‘name‘:‘xiaoming‘,‘age‘:15,‘address‘:[‘Beijing‘,‘Chaoyang‘,‘Sanlitun‘] }
字典是一种包含 键:值 对的数据结构。其中键 必须是不可变的(可hash)的。
字典添加元素:
1 >>>dic={‘name‘:‘xiao ming‘,‘age‘:15,‘address‘:[‘Beijing‘,‘Chaoyang‘,‘Sanlitun‘]} 2 >>>dic[‘new_value‘] = ‘new value‘ #向字典添加元素 3 >>>del dic[‘new_value‘] #删除dic中的 new_value 4 #遍历字典的键 5 >>>for key in dic.keys(): 6 . . . print(key,end=‘|‘) 7 name|age|address| 8 9 #遍历字典的值 10 >>>for value in dic.values(): 11 . . . print(value,end=‘|‘) 12 13 xiao ming|15|[‘Beijing‘,‘Chaoyang‘,‘Sanlitun‘]|
第七步分:文件
编程免不了要和文件打交道,下面介绍一些关于文件的操作。
1 filename = ‘config.ini‘ #文件名称 2 f=open(filename,‘r‘) #以‘读’的方式打开文件 3 content=f.read() #将文件内容赋值给content变量 4 f.close() #读完的文件需要关闭
此处给了open()函数两个参数:文件名称和打开方式(r)还有其他模式(写:w,二进制打开:b,追加模式:a),其他详细的描述可以使用 help(open) 来查看。open()打开的文件,需要在执行 close(),否则容易导致读写出现问题。还可以使用另一种比较优雅且安全的方式打开文件,读取内容:
1 with open(filename,‘r‘) as f: 2 content=f.read() 3 4 print(content)
写文件的例子:
1 a=‘this is a new string‘ 2 with open(filename,‘w‘) as f: 3 f.write(a)
好了,学习的这么多,先写道这里。
python基础