【python】零基础从入门到精通(二)

day3-序列类型与转义字符

序列类型

int float bool-->数值类型,表示一个数值,数值类型比较适合存储一个数据,不适合存储多个数据,数值类型没有下标的概念

要存储多个数据的话其实可以用序列类型存储

序列类型:
	1.可以存储多个数据的一种类型
	2.里面的数据是有顺序,坐标概念的

序列类型核心概念–下标

在序列类型中数据都是有下标的概念

下标类似于坐标,比如酒店的房间/宿舍门牌号

在程序中,和生活习惯不一样,程序下标是从0开始计算的
	
    人类报数:1 2 3 4 5 ;第一个数是1,第二个数是2
    机器报数:0 1 2 3 4 ;第一个数是0,第二个数是1
    
    下标也支持负数取值,最后一个数为-1,倒数第二个数为-2
    
name='陌上真帅'
陌  上 真 帅
0   1  2  3
-4 -3 -2 -1	        

序列类型核心概念–索引

我们现在知道了一个数据所在的位置,是不是也可以找到这个数据,并且把他提取出来

在序列类型中,通过下标提取对应的一个数据,这种行为称为索引

语法:
    序列名[下标]
    
实例:
    name='陌上许总'
    print(name[0]) #陌
    print(name[2]) #许
    print(name[-2]) #许
    print(name[6]) #报错,下标越界

序列类型核心概念–切片

索引可以取出来数据,但是一次只能提取一个数据,如果需要提取多个数据就很麻烦,这时就可使用切片

在序列类型中,通过下标一次性提取多个数据的行为,这种行为称为切片

语法:
    序列名[起点:终点] #终点实际到他的前一位
实例:    
    talk='今天我们也要好好学习呀'
    print(talk[0:3]) #今天我 终点是前一位 3的前一位是2这个下标的数据
    print(talk[2:6]) # 我们也要
    print(talk[2:20]) # 超出范围的索引,切片操作是不会报错 他就只是默认帮你取完 我们也要好好学习呀
    print(talk[1:]) #终点不写,从1开始取完  天我们也要好好学习呀
    print(talk[:5]) #起点不写,默认从0开始取 今天我们也
    print(talk[-1:])  #呀
    print(talk[-5:-2]) #好好学
	print(talk[2:-2]) #我们也要好好学
    
切片的细节:
    1.切片时,终点值实际都是取到他的前一位,比如写2:6,实际取得是2:5
    2.切片是,起点值和终点值可以空着不写,不写起点的话默认从0开始取,不写终点,默认取到最后
    3.切片 超出索引不会报错,那默认就是取完,跟单独索引不样,单独索引超出下标会报错

序列类型核心概念–步长

生活中有的人腿很长,走楼梯一次走2,3格
程序中, 正常取数据都是一位位的取,步长为1,可以通过设置步长的方式
取数据跨位取,但是这个跨位是有规律的 

语法:
    序列名[起点:终点:步长]
    
实例:
    num='123456789'
    print(num[2:6]) #正常取2:5的数据 3456
    print(num[::2]) #去全部数据 一次隔两位取 13579
    print(num[::-1]) #取全部数据 反向输出
    
其实一般用到最多的就是print(num[::-1])  反向输出的操作

序列类型–列表与元祖

之前学的数据类型都比较单一
要么纯数字/小数/字符
如果想把他们都放在一起保存,就需要接下来这两种序列类型:
    列表/元组

列表-list

列表(list):表示形式为用一对中括号包裹起来的数据,里面的数据用逗号隔开
    列表可以存储几乎所有的数据,并且里面的数据可以修改
    
语法:
    列表声明:
        列表名=[数据1,数据2,数据3]
    列表修改:
        列表名[下标]=数据 #修改指定下标的数据
实例:
    question=['在吗',10,False,1.5]
    print(question)
    question[0]='列表怎么声明'
    question[2]=True
    print(question)
    
列表还可以嵌套.也就是说列表里面还可以放列表
a=[1,2,3]
b=[4,5,6]
c=[a,b]
print(c)
print(c[0]) #取出列表a
print(c[0][1]) #取出列表a,再取出a里面的元素2

元组-tuple

元组(tuple):表示形式为用一对小括号包裹起来的数据,里面的数据用逗号隔开
    里面的数据不可以修改
    

语法:
    元组声明:
        元组名=(数据1,数据2,数据3)
    
实例:
    teacher=('李震','应江奔','许叶彤')
    print(teacher)
    print(type(teacher))
    print(teacher[1])
    #teacher[1]='tt' #元组不支持修改 会报错 
    
如果你要存的数据,会被修改-->用列表
	food=['辣椒炒肉',15,'香干炒肉',25.5]
    
如果你要存的数据,不会被修改-->用元组
	size=('s','m','l','xl')
    teacher=('李震','应江奔','许叶彤')

转义字符

在python中特别功能的一些'字符' 表示形式为\后面加了指定的字符
	\n --换行
    \t --制表符 4个空格 tab
    \ --正常输出斜杠\
    ' --正常输出引号
    
实例:
    print('好好学习\n天天向上') #我是换行
    print('好好学习\t天天向上') #我是制表符
    print('好好学习\天天向上') #正常输出一个斜杠符号
    print("好好学习'天天向上") # 正常输出一个引号
    print('好好学习\'天天向上') #正常输出一个引号,如果说有一样的引号会报错 那你加转义\就可以了
 
如果有个字符串里面有很多 但是并不是要用的转义字符 可以在他前面加上r 取消转义
实例:
    print(r'好好学习\n天天向上') 
    
	主要用于网站/电脑文件的
    实例:
        test1='D:\tproject\__pycache__\node'
        
        test1='D:\tproject\__pycache__\node'
        test2=r'D:\tproject\__pycache__\node'
        print(test1)
        print(test2)
        
转义字符用的最多的就是
	\n 和\t 以及前面加个r取消转义
    
需要了解更多转义字符的可以来这里面查询并且使用:http://c.biancheng.net/view/2176.html   

数据类型转换

在程序开发时,有时候需要涉及到数据之间的相互转换
	字符串'88',转为数值
    数值88,转为字符串
    
所以针对这个情况,就可以通过类型转换来实行
但是有个前提,操作数据必须得合法规范

一次只能转一个数据
int(数据) -->把数据转换为整型
	int('88')
float(数据) -->把数据转换为浮点型
bool(数据) -->把数据转换为布尔型
str(数据) -->把数据转换为字符串型
list(数据)-->把数据转换为列表型
tuple(数据) --> 把数据转为元组型 

咱们input得到的数据都是字符串类型 
age=input('请输入你的年龄')
print(age)
#input得到的数据都是字符串类型
print(type(age)) #字符串
#print(age+1) #报错 字符串不能和整型相加

如果要实现得到的input输入后的内容是int类型,这么写
age=int(input('请输入你的年龄'))
print(age)
#input得到的数据都是字符串类型
print(type(age)) #int
print(age+1) #年龄+1

类型转换后之后,如果你需要用转换之后的这个数据,那就要重新赋值,
age2='18'
print(type(age2)) #str
age2=int(age2) #做法一重新赋值给原变量age2
print(type(age2)) #这个时候age2就是int类型了
print(age2+1)

age3=int(age2) #做法二也可以用新的变量接收
print(age3+2)

注意
在python中,给变量命名是 不要取名为 int float print type
	还有不要出现这种情况
    str=xxx
    int=xxx
    float=xxx
    list=xxx
    tuple=xxx
    球球了 不要这样做
    这样是错误的 不要 这么写 写简写
    
    list-->简写为li

day4-格式化输出与运算符

一、字符串进阶(格式化输出)

name='陌上'
age=18
#print('大家好,我叫'+name+'我今年'+age+'岁了') #报错,int和str类型不能拼接
print('大家好,我叫'+name+'我今年'+str(age)+'岁了') #转换类型后可以输出,但是太麻烦
print('大家好,我叫',name,'我今年',age,'岁了')  #虽然说有逗号隔开,但是每次还得考虑,也很麻烦

开发的时候 你每次开发一个东西 你还得考虑他的类型  然后就需要去注意 就很麻烦 而且还很容易出错 

在以后写代码的过程中,经常会涉及到字符串和其他类型的变量在一起使用的环节,但如果变量不是纯字符串,而是int/float/其他类型的数据,拼接起来就很容易出错

比较low,麻烦的也就是字符串和字符串拼接:
    字符串与字符串之间用+号进行拼接
    字符串+字符串
    name='陌上'
    print('多喝'+'热水')
    print('我是'+name)
    
所谓格式化-->一种更好的输出方式
	1.可以让你更方便的输出带有变量的数据
    2.可以让你更方便的输出一些固定格式的数据
  
尊敬的xx您好,您X月的账单已经发送,您使用话费共XX元
	1.有标准格式
    2.里面X都可以变量来代替

1.1 f-str

f-str(format string 全拼)

语法:在字符串前面加f/F,在字符串里把要输出的变量,{}大括号包裹起来
    f'xxx{变量}yyy'
    print(f'大家好,我是{name},我今年{age}岁了')
    
大括号里的变量也是可以操作的,可以进行数值运算,切片,索引,方法
print(f'大家好,我是{name[1]},我今年{age+10}岁了')

1.2 %占位符

我要请客吃饭,我不确定还有没有位置,我就先打个电话给酒店.--'预订'个包间

占位符概念-->先占个位置,后续再用具体的数据来顶上

形参:没有具体的数据,只是先占个位置--角色
实参:有具体的数据,在运行是取代形参--演员
    
仙剑奇侠传:
    李逍遥 --有这样一个角色 是谁来演还不知道
    胡歌--开拍之后才知道,是胡歌出演,在演戏的时候,胡歌就是顶替了李逍遥的位置,他从此就是李逍遥了
    
语法:
    'xx%sxx'%数据
    'xx%sxx%d'%(数据1,数据2)
    
	%s str类型 --给 字符串占位置 后续来的数据是字符串
    %d int类型 --给 整型占位置 后续来的数据是整型
    %f float类型 --给 浮点型占位置 后续来的数据是浮点型(默认6位小数)
    	%.1f -->带一位小数
        %.2f -->带两位小数
        %.xf -->带x位小数
    
实例:
    name='陌上'
    age=18
    print('我是%s'%'陌上') #实参可以是具体的数据
    print('我是%s'%name) #实参也可以是定义的变量
    print('我是%s,我今年%d岁了'%('陌上',age))
    print('我是%s,我今年%d岁了,我现在还剩%f元'%('陌上',age,88.88)) #带六位小数
    print('我是%s,我今年%d岁了,我现在还剩%.1f元'%('陌上',age,88.88)) #带一位小数
    
小细节:
    %除了可以放变量,也可以直接放数据
    放的都是已知数据,类型是固定死的
    #print('我是%s,我今年%d岁了,我现在还剩%.1f元'%('伊诺','我要搞事了',88.88))  #%d是给整型占位置 你要传字符串就报错
    一个位置一个坑,少了位置和多了位置都是不可以的
    %s的包容性比较强,后续如果你来的数据是整型,浮点型,列表,元组,都可以接受
    但是%d,%f确不行,必须来对应的数据

1.3 .format

用法跟占位符,f-str类似,他先用大括号作为占位符,在字符串后面通过.format来传递数据

语法:
    'xx{}xx'.format(数据)
    'xx{}xx{}'.format(数据,数据)
    'xx{下标}xx{下标}'.format(数据,数据)
    
实例:
    name='陌上'
    age=18
    print('我是{},我今年{}岁'.format(name,age))
    print('我是{},我今年{}岁'.format(name,19))
    print('我是{},今天是{},我在马路边捡到{}元'.format('刘水','星期四',100))
    print('我是{},今天是{},我在马路边捡到{}元'.format('星期四','刘水',100))
    #大括号里的内容,也可以通过下标决定输出数据
    print('我是{0},今天是{1},我在马路边捡到{2}元'.format('刘水','星期四',100))
    print('我是{1},今天是{0},我在马路边捡到{2}元'.format('星期四','刘水',100))
    #你要么放下标就全放,要么就都不放下标,如果只放部分下标就会报错
    print('我是{1},今天是{},我在马路边捡到{}元'.format('星期四','刘水',100))
    #print('我是{1},今天是{0},我在马路边捡到{3}元'.format('星期四','刘水',100)) #超出下标会报错
    
#结合循环遍历,做一个有仪式感的群发
names1=['尹天浩','刘绪国','卢泽宇','李震','应江奔','许叶彤']
for i in names1:
    print('''
        {}年快乐,{}在这里,祝{}端午节安康
            身体健康,万事如意,多吃粽子
                    {}
'''.format('兔','陌上',i,'陌上'))


#优化一下代码
names2=['尹天浩','刘绪国','卢泽宇','李震','应江奔','许叶彤']
for i in names2:
    print('''
        {0}年快乐,{1}在这里,祝{2}端午节安康
            身体健康,万事如意,多吃粽子
                    {1}
'''.format('兔','陌上',i))

二、基本运算符

2.1算数运算符

跟数学优先级一样 (先乘除后加减)

+
-
*****
/除 (得到的结果为浮点型)
%取余
//整除
******幂(乘方)
这里讲运算符代码时为了方便快速测试用的交互模式,我省略了print
>>> 10%3
1
>>> 3**3
27
>>> 10//3
3
>>> 20//4
5
>>> 18//3
6
>>> 18//5
3
>>> 3**8
6561
>>> a=1
>>> b=1
>>> a+b
2

2.2赋值运算符

赋值符号的左边必须是一个变量名

需要赋值给谁就把谁放在最左边

=赋值运算符c = a + b(赋值运算符的程序是从右往左执行)
+=加赋值a+=b = = > > a=a+b
-=减赋值a-=b= = > > a=a-b
*=乘赋值a* =b= = > > a=a *b
/=除赋值a/=b= = > > a=a/b
%=取余a%=b= => > a=a%b
//=整除a//=b= => > a=a//b
* *=a* *=b= => > a=a * * b
>>> a=1
>>> b=1
>>> a+b
2
>>> a+=b
>>> a
2
>>> b-=a
>>> b
-1
>>> a*=b
>>> a
-2

2.3比较运算符

得到的结果为bool类型

在python中.一个等号是用来赋值,两个等号才是判断是否相等.

>大于
<小于
==等于
>=大于等于
<=小于等于
!=(英文符号)不等于
>>> 66<88
True
>>> 34>500
False
>>> a=88
>>> b=66
>>> a>b
True
>>> b<=a
True
>>> a!=b
True
>>> a==b
False

2.4逻辑运算符

得到的结果为bool类型

代码含义
and与 and左右两边的值必须都为真的时候才为真,否则为假 – >‘和’
or或 or左右两边的值其中有一个真即为真,全假才为假 – >‘或’
not非 就是将值为真的变成假的 假的变成真的 – >‘非’ 取反. 死杠精什么东西都和你反着来
父母:python大于95,math大于90,两名达到要求,可以吃大餐,否则混合双打
>>> python=98
>>> math=70
>>> python>=95 and math >=90
False
>>> python>=95 or math >=90
True
>>> python>=100 or math >=90
False
>>> python>=95 and math >=60
True
>>> not True
False
>>> not False
True

2.5成员运算符

得到的结果为bool类型 序列类型有字符串,列表,元组

代码含义
in判断成员是否在序列中
not in判断成员是否不在序列中
>>> talk='陌上很帅'
>>> '丑' in talk
False
>>> '美' in talk
False
>>> '丑' not in talk #判断丑不在talk 里
True
>>> '美' not in talk
True

2.6 运算符优先级

符号描述
()小括号
**幂(乘方)
*、/、//、%算术运算符
+、-算术运算符
<、>、<=、>=、==、!=比较运算符
in、not in成员运算符
not > and > or逻辑运算符

2.7短路运算符

短路运算符,代码在判断时,已经知道结果了,后面的判断就不会执行
假设我现在有一根电线,a、b、c三个点分别代表这个电线上三个非常关键的连接点,电流的方向是这样的
a------->b--------c>

如果a短路了,b和c肯定没电,如果b短路,电流会正常经过a,但是c不能,如果c短路,电流会正常经过ab

and:当前面的值为假时,and后面的值不会执行
>>> 0 and 1
0
>>> 1 and 0
0

or:当前面的值为真,or就不会往后面执行
>>> 0 or 1
1
>>> 1 or 0
1

day5-复习拓展

pycharm安装

pycharm是python圈子里最受欢迎的开发工具
ide -->集成开发环境 -->有很多功能的作案工具
	编辑器 -- 让你写/改代码的地方
    编译器 -- 帮你运行代码的工具
    调试器 -- 帮你测试,调试bug的工具
    杂七杂八 -- 远程连接工具,虚拟机工具,git工具
    
pycharm有两个版本:
    1.专业版 -- 要钱,功能多点
    2.社区版 -- 免费,功能少点

pycharm有中文汉化包 -->plugins里搜索Chinese下载可以使用 -->但是不推荐用,尽量还是用英文版

下载官网:
	1.官网 https://www.jetbrains.com/zh-cn/pycharm/download/#section=mac
	
pycharm安装好之后不要随便移动更改位置!!!!也不要更新pycharm
项目文件也不要随意拖动改位置
    
新建python文件:
    选中项目文件夹 -- 右键 -- new -- python file -- 输入文件名 -- 回车
    设置字体大小 -- file -- setting -- 搜索font -- 修改大小
    运行程序 -- 编辑器右击 -- run
    
    设置主体颜色:-- file -- setting --Appearance--Theme
    	Darcula  黑色
    	
    
pycharm快捷键
	1.快速注释代码 --> 选中代码行 -->Ctrl+/(取消注释也一样)
    2.快速复制上一行代码 --> 选中代码行 -->Ctrl+d
    
打开python文件项目:
    file-->open-->找到你想要打开的文件就可以打开了

程序的生命周期

为什么双击程序没有反应
写好了一个python文件,保存之后,要运行他直接双击了,但是你看起来没反应

昙花一现--> 有个花叫昙花,开花的一瞬间很美很漂亮,但是很短暂,稍纵即逝
当你双击程序后,程序其实运行了-->快速启动 快速运行 运行完后光速暴毙 没有留下痕迹

所以如果要程序运行 并且想要看到他的运行结果最好是用上工具
	1.用idle-->file-->open-->找到你要运行的python文件打开-->运行
    2.用pycharm运行 file-->open-->找到你要运行的python文件打开-->运行

第1-4节课复习

编程语言:人和计算机沟通交流的额方式,通过写代码的方式控制电脑实现特定的功能
    
输入输出(Io)语句
	print:输出函数 输出一句话
        语法:print(数据) #如果是数字或者变量你可以直接放,如果是字符(字母,中文,符号)要加引号
    input: 输入函数 接收用户输入的结果内容
        语法:input(提示内容) #重点 括号内的不是结果而是提醒用户这里需要输入时什么内容 再随着运行用户输入内容
            input('请输入你的名字') #运行时会先输出提醒内容,再进行输入操作
            
交互模式表示形式为>>> 简便但是不好保存 也只能测试一行小代码
脚本模式(文件模式) 方便修改 可以保存 正经写代码都是用脚本模式

程序员的自我修养(注释)
单行注释表示形式为:在文字/代码前面加#号
多行注释表示形式为:用三对引号包裹的数据 单双引号都OK
    '''
    	项目名称:
    	项目描述:
    	项目环境:
    	作者所属
    '''
    
变量:存储数据的容器 把一个数据保存起来取个名字方便后续使用
    变量命名规范:
        1.变量名由下划线,字母,数字组成
        2.首字符不能是数字,也不能是纯数字
        3.不能有奇怪的特殊符号(&%@^)
        4.不要用特殊含义/关键字的词取名
        	再次球球你们了,不要给变量取名为			float,list,type,input,print,str,tuple
            print=123
            print('我还能打印吗') #报错
        5.python里变量是区分大小写的
        6.见名知意(大驼峰/小驼峰/链式命名)
        	看到这个名字就知道他是干嘛用的
            提高代码阅读性
            
声明变量: 变量名=变量值 #age=18
使用变量: print(变量名) #print(age)
    
也可以给input用变量赋值(如果需要结果为其他类型需要转换)

数值类型: 不支持下标 索引 切片 步长等等操作
    int 整型 没有小数点的数 #1 2 3 -1 age=18
    float 浮点型 带小数点的数 #1.0,8.8 money=8.8
    bool 布尔类型 主要用于判断 也可以作为数值运算
    	True/1/False/0/假 
        
序列类型:
    str 字符串 用一对引号包裹起来的数据,里面主要就是用来保存(字符,符号,汉字,英文,数字)
    	name='陌上' #这样的'1' 'True'也是字符串
    list 列表 用一对[]中括号包裹起来的数据 数据之间用逗号隔开 里面什么都可以放 可以修改
    	info=['陌上',1,8.8,True]
    tuple 元组 用一对()小括号包裹起来的数据 数据之间用逗号隔开 里面什么都可以放 但是不可以修改!!!
    	如果元组只有一个数据也要加逗号!!!
        	demo=('陌上',) #没加逗号 就是一个字符串类型
            four_star=('刘德华','张学友','郭富城','黎明')
        type功能函数 查询数据类型
        	print(type('1'))
            
序列类型的特性:
    下标:坐标 所在位置(计算机下标从0开始计算)
        好 好 学 习
        0  1  2 3
       -4 -3 -2 -1
        
    索引:通过下标获取值(单个)
        语法:序列名[下标]
            four_star=('刘德华','张学友','郭富城','黎明')
            print(four_star[2]) #'郭富城'
            print(four_star[-2])  #'郭富城'
            
    切片:通过起点/终点设置取一部分需要的数据,终点值是到他的前一位
        语法:序列名[起点:终点]
            print(four_star[2]) #'郭富城'
            print(four_star[-2])  #'郭富城'
            print(four_star[1:3]) #('张学友', '郭富城')
            print(four_star[:3]) #('刘德华', '张学友', '郭富城')
            print(four_star[:-1]) #('刘德华', '张学友', '郭富城')
            
   	步长:一次性跨位取或者取反
        语法:序列名[起点:终点:步长] 
            print(four_star[::2]) #('刘德华', '郭富城')
            print(four_star[::-1]) #('黎明', '郭富城', '张学友', '刘德华')
            
转义字符:在python中就是代表特比功能的'字符'  --\
    \n---换行
    \t--制表符 tab(四个空格)
    取消转义 字符串前面加r
    
    talk='晚上好\n乡亲们\t我又回来了'
    talk1=r'晚上好\n乡亲们\t我又回来了'
    print(talk)
    print(talk1)
    
格式化输出:可以更好更方便的输出带有变量的数据
    f-str-->在字符串前面加上f,把输出的变量用大括号{}包裹qilai 
    	name='贺天斌'
        num=1
        print(f'我叫{name},这是我第{num}次上电视')
        
        
    占位符-->先用占位符占位置,后续再用具体的数据来顶上运行
    	%d-->占一个int类型
        %s-->占一个字符串类型
        %f-->占一个浮点类型
        	%.1f-->保留一位小数
            %.xf-->保留x位小数
            
            name=['陌上','LLL']
            num=1
            print(f'我叫{name[0]},这是我第{num}次上电视')
            print('我叫%s,这是我第%d次上电视'%(name[1],num))
            
     .format-->先用大括号占位置,后续再用实际的数据来顶上,对数据类型没有要求(如果大括号里面放下标的话,要么都放下标,要么都不放,如果只放部分下标就会报错)
    
    		name=['李白','王维','杜甫']
            num=1
            money=8.88
            print(f'我叫{name[0]},这是我第{num}次上电视')
            print('我叫%s,这是我第%d次上电视'%(name[1],num))
            print('我叫{},这是我花{}元买的第{}次上电视,我出息了,我要赚{}万'.format(name[-1],money,num,100))
            
运算符:
    算数运行算符:+-*/%取余 //整除 **乘方
        % 取余 10%3 -->1
        10-3-3-3=1  最后剩下的是余数1
        
        // 整除 10//3 -->3
        103=3.33333 去掉后面的小数就是他的整除数,整除数为3
        
        ** 取幂 3**3 -->27 3的三次方
        3*3*3
        
        
        赋值运算符:=  += -= /= %= //= **= #a=a+1.简写a+=1
            
        比较运算符:> < == >= <= != #两个等号才是比较 一个等号是赋值    != 不等于
            
            
        逻辑运算符:and #都为真才为真
            	or#一个为真就为真
                not #你是真的就为假 你是假的就为真
                
        成员运算符:in: 判断数据是否在序列里面 
            	not in: 判断数据是否不在序列里面       

编程语言的区别(编译型/解释型)

编程语言通过运行的方式不同,分为主流两种性质的语言,一种叫解释型,一种叫编译型

有个老外 不懂中文 很想看三国演义的故事(1.没时间学中文 2,没有英文版的书)

1.找随身翻译-->陪着自己,要看的时候就问对方-->解释型
	优点:
        效果快 比较方便
    缺点:
       读起来慢,要听对方一句句翻译
    	有依赖性,必须得翻译官在 不在就gg


2.把整本三国演义,翻译成英文版-->编译型
	优点:
        读起来比较快,看起来很方便
        不需要借助翻译,有书就行
        
    缺点:
        不好修改 如果有一页打错了必须整本打印
        不够灵活
        
编译型:把代码转化为可执行文件再运行程序-->把你的代码,弄成一个.exe的文件
    c/c++
    优点:
        效率比较快 性能比较好
        不需要安装环境就可以运行
        
    缺点:
        不够灵活 修改起来比较麻烦 如果修改之后 要重新进行编译 重新生成一个可执行文件
        
        
解释型:安装一个解释器要运行程序的时候一行一行来解释执行 需要安装环境
    python
    优点:
        更灵活 修改起来方便
        兼容性更好 更好的跨平台 一段代码 要换到别的系统执行就直接换个解释器就可以了
        
    缺点:
        性能没有那么好 比较慢
        运行程序正常情况下都需要依赖环境 不好做到脱离运行
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值