python 基础学习1
Python2和Python3的区别:
Python2 源码不标准,比较混乱,重复代码太多。
Python3 统一标准,去除重复代码
Python2 的默认编码方式是ASCII码 解决方式 在首行加上 #-*- encoding:utf-8 -*-
Python3默认编码方式是utf-8
python是什么编程语言
python是一门动态解释性的强类型定义语言。
编程语言主要是以下几个角度进行分类:编译型和解释型,静态语言和动态语言,强类型定义语言和弱类型定义语言
编译型语言:一次性 将所有程序 编译成二进制文件。
编译器是把每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
缺点:开发效率低,不能跨平台
编译之后如果需要修改就需要整个模块重新编译。
编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
优点:执行速度快
编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译。
所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
解释性语言:程序执行时,一行一行的解释
解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
缺点:运行速度慢
每次运行的时候都要解释一遍,性能上不如编译型语言。
优先:开发效率高,可以跨平台
有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。
灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
python的优缺点
优点:Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂。
开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。
可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写
可嵌入性————你可以把Python嵌入你的C/C++程序
缺点:
速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些。
代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的
线程不能利用多CPU问题
变量:
变量:就是将一些运算的中间结果暂存在内存中,以便后续代码调用。
# -*- coding: utf-8 -*- name = "pp"
命名规则:
必须由字母,数字和下划线任意组合,且不能数字开头
不能是python中的关键字
['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']
变量具有可描述性
不能是中文,不能用拼音
常量:
常量:一直不变的量
在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量
字母全部大写
注释:
注释:单行注释#
多行注释’’’被注释内容’’’
基础数据类型初始:
数字:int 1,2,3...
+ - * / **
%取余数
在32位机器上 整数位数位32位,取值范围位-2**31~2**31-1
...在Python3里不再有long类型了,全都是int
Type();
字符串:str,凡是用引号引起来的都是字符串
>>> name = "Alex Li" #双引号 >>> age = "22" #只要加引号就是字符串 >>> age2 = 22 #int >>> >>> msg = '''My name is Alex, I am 22 years old!''' #3个引号也可以 >>> >>> hometown = 'ShanDong' #单引号也可以
多引号什么作用呢?作用就是多行字符串必须用多引号
msg = ''' sssss, sss eee aaa。 ''' print(msg)
可相加 字符串的拼接,可相乘 str * int
>>> name 'Alex Li' >>> age '22' >>> >>> name + age #相加其实就是简单拼接 'Alex Li22' >>> >>> name * 10 #相乘其实就是复制自己多少次,再拼接在一起 'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
布尔值:就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断
>>> a=3 >>> b=5 >>> >>> a > b #不成立就是False,即假 False >>> >>> a < b #成立就是True, 即真 True
用户交互 input
1、等待输入
2、输入的内容赋值给前面的变量
3、Input出来的值全部为str
#!/usr/bin/env python # -*- coding: utf-8 -*- # 将用户输入的内容赋值给 name 变量 name = input("请输入用户名:") # 打印输入的内容 print(name)
可以让用户输入多个信息,如下
#!/usr/bin/env python # -*- coding: utf-8 -*- name = input("What is your name?") age = input("How old are you?") hometown = input("Where is your hometown?") print("Hello ",name , "your are ", age , "years old, you came from",hometown)
流程控制之If:
if 条件:
结果
字符串转化位数字Int(str),str必须是数字组成的
数字转化位字符串 str(int)
if...else
""" if 条件: 满足条件执行代码 else: if条件不满足就走这段 """ AgeOfOldboy = 48 if AgeOfOldboy > 50 : print("Too old, time to retire..") else: print("还能折腾几年!")
多分支 if...elif..
if 条件: 满足条件执行代码 elif 条件: 上面的条件不满足就走这个 elif 条件: 上面的条件不满足就走这个 elif 条件: 上面的条件不满足就走这个 else: 上面所有的条件不满足就走这段
age_of_oldboy = 48 guess = int(input(">>:")) if guess > age_of_oldboy : print("猜的太大了,往小里试试...") elif guess < age_of_oldboy : print("猜的太小了,往大里试试...") else: print("恭喜你,猜对了...")
代码是从上到下依次判断,只要满足一个,就不会再往下走。
缩进
每个条件的下一行都缩进了4个空格.这是Python的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件.
缩进原则:
- 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
- 同一级别的代码,缩进必须一致
- 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。
流程控制之while:
while 条件 :
循环体
无限循环
中止循环:改变条件,时期不成立
break;
continue:结束本次循环,继续下一次循环。
while else :
当循环被break打断,就不会执行else中的结果
与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句
while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
count = 0 while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
Loop 1 Loop 2 -----out of while loop ------
格式化输出
%占位符 %s 字符串 %d dight 数字
%%只是单纯的显示%
name = input("Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job,hobbie) # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 print(info)
注意 : input接收的所有输入默认都是字符串格式!
转化:int();str()
age = int( input("Age:") ) print(type(age))
初始编码
电脑的传输,存储实际上是二进制编码的形式。
美国:开始用ASCII码的形式,为解决全球化的文字问题,创建了一个万国码 Unicode
最开始:用 1 个字节 表示所有的英文 特殊字符和数字
2个字节,16位表示一个中文,不够。Unicode用4个字节表示一个中文。
升级版 utf-8:一个字符最少用8位去表示,8位表示一个字母
一个中文用3个字节去表示
gbk :仅供国内使用,一个中文用2个字节去表示。
最开始 8位bit == 1个字节(byte)
1024byte == 1kb
1024kb == 1M
1024M == 1G
1024G == 1T

浙公网安备 33010602011771号