一、python的基本说明。
之前我们大致的涉猎了python的一些语法概念,发现了python的强大之处,由此我们来真正的走一下python,体验这个从零到一的过程。
Python是著名的“龟叔”Guidovan Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
当你用一种语言开始作真正的软件开发时,你除了编写代码外,还需要很多基本的已经写好的现成的东西,来帮助你加快开发进度。比如说,要编写一个电子邮件客户端,如果先从最底层开始编写网络协议相关的代码,那估计一年半载也开发不出来。高级编程语言通常都会提供一个比较完善的基础代码库,让你能直接调用,比如,针对电子邮件协议的SMTP库,针对桌面环境的GUI库,在这些已有的代码库的基础上开发,一个电子邮件客户端几天就能开发出来。
Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。
再说说Python的缺点。
任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢?
第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
二、python基本语法。
1, python 的输入输出
#print('hello world') 输出一个字符串
#print("hello ", "world") 输出多个字符串
#100+300 再命令行才会有计算结果,这里不会
#print(100+300) 输出400
'''
name = input()
print(name) 输出一个字符串,回车结束
'''
'''
name = input("请输入一个字符串:\n")
print(name) 对输入进行提示,\n转义换行
'''
2,python的基础。
2.1格式处理
Python的语法比较简单,采用缩进方式,写出来的代码就像下面的样子:
''' a = 100 if a > 0 : print(a) else: print(-a) 选择语句 '''
2.2数值计算
请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
print(100/3)
结果:33.333333333333336
2.3字符串处理
print('i am a "boy"')
结果:i am a"boy"
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义,可以自己试试:
print(r'\n')
结果:\n
print('''line line line''')
结果: line
line
line
三、编码。
对于编码的历史就不一一赘述了,ascii –> Unicode –> utf-8
计算机内存中使用的是Unicode,但是在文本中大量使用utf-8。
1,相关用法
计算ascii值:
print(ord('A'))
结果:65
通过ascii打印字符:
print(chr(65))
结果:A
print(b'abd'.decode('ascii'))这里的abd受b的字符串前面b影响,采用字节存储,这里就是3个字节,
print(len('123'))#计算的是字节数
结果:3
在linux下,如下注释会告诉os如何编码等等,windows会忽略这些注释
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
2,格式化输出。
print("我是 %s ,您好呀%s"%('您的朋友',"小D"))
结果:我是您的朋友 ,您好呀小D
print("我是{0},你好呀{1}".format('您的朋友','小D'))
结果:我是您的朋友,你好呀小D
四、list与tuple。
1,list类似于其他语言是一种数据类型。
number = ['one','two','three'] #初始化列表 print(number[0]) #输出第一个元素 number.append('four') #追加 print(number) #输出列表 print(number[3]) #添加成功后可以访问索引3 print(number[-1]) #索引最后一个元素 number.insert(1,"one point five") #插入一个元素 print(number) number.pop(1) #不写索引就是删除末尾的元素 number.append(['2',3]) #list 中可以放另一个list print(number)
2,tuple叫做元组,一旦确定下来就不可以改变。
names = ('小明','小红','小花','小丽',['s',3]) print(names) print(names[-1])#同样可以通过索引来寻找元素 names[4][1] += 3 print(names[4][1]) #这里改变的是列表,而tuple的指向没变
五、逻辑结构
a = input("please input a number : \n") a = int(a) sum = 0 for b in range(a) : #for循环 if b % 2 == 0 : #条件判断 sum += b print(sum) b = 0 while sum > 0: #循环结构,while b += sum sum /= 2 print(b)
六、dict 与set。
1,dict既是字典,在其他语言中也叫map,是采用键值对的方式存储数据。
grade = {'lilei':97,'hanmeimei':95,"join":87} #双单引号没影响 print(grade['join']) grade['mike'] = 86 #添加键值对 print(grade['mike']) grade['lilei'] = 98 #修改 grade.pop('mike') # 删除
2,set与dict实现一样,只是没有值,其中存储的全是键,以保证元素不重复。
***不可变元素,永远不可变,方法创建新对象,保证变化的不是自己本身。