python基础知识-01-编码输入输出变量
名词解释: 编辑器 ide 程序员 操作系统 ASCAII码 unicode utf-8
1、typora软件使用
百度搜索typora软件 1、标题 # ## ### 2、列表 大纲视图可显示目录
把文字变成灰色 -变成黑点 .加空格 - 表格,段落里面,左上角四个格子可以修改表格行列数量。 主题
shift+tab 前所 tab后所typora
1、什么是程序员 2、计算机基础 3、Python简介
快捷键可粘贴截图到编辑器 可插入代码前后各三个反引号。按shift切换到英文字符。可选择代码语言 以上语法就是markdown语法
(这么能说,大脑中有很多熟知的故事,然后才随口而出。)
1、程序员是干什么的? 由人来控制电脑,然后解放全人类的。让电脑代替人类做事情的
2、你为什么要做开发?
3、程序员如何控制电脑? 学一门电脑能认识的语言,控制电脑让电脑去做事。写代码相当于写作文。(我感觉说话演讲都是写作文) *计算机有600多种编程语言,主流的语言有c,c#,c++,java,python,js等等
4、计算机基础,计算机初步认识 计算机配置。组件。 计算机操作系统 解释器,编译器,虚拟机。我们写出来的代码交给解释器。
5、python2,3的区别
1)python2默认编码格式为ASCAII码,Python3默认编码格式为utf-8
2)Python2的print打印是print "字符串" ,python3的print打印是print(“字符串”)
3)Python2和3的输入不同,python3是input(),Python2是raw_input()。
4)py2除法运算不能显示小数点后面的
5)py2在32位系统和64位系统上有长度限制,超过长度转为长整形,py3没有
6、为什么还要用Python2的呢?Python2,3的区别
2、python解释器安装
学会Python语法,安装解释器。让自己写的代码在电脑上运行起来。
进入Python官网,进入下载,点击下载任意 一个版本,单击安装。添加到环境变量。立刻安装,或者自定义安装。 写一段代码,让解释器运行这段代码。Python36,让它去运行代码。 win+R cmd命令行操作,解释器的路径。解释器路径+代码的路径。txt格式编码有问题,另存为其他编码格式的文件并运行就可以了。
解释器安装之后,IDE安装,即编辑代码的软件:pycharm 公司用的Windows版本一般是windows server
入职前学习mac笔记本的使用。
下载解释器:https://www.python.org/ 点击downloads,选择对应的系统。最上面两个是最新的2和3的版本。历史版本在下面。 execcutable 下载exec这个版本,64位的 embeddable web-based
没装最新的,考虑到兼容性的问题。
为什么还要用Python2的呢?Python2,3的区别
3、Python解释器环境变量添加
检查Python解释器是否安装成功,进入对应的安装路径,执行Python.exe文件。可以进入Python的交互模式。说明安装成功。quit()或者exit()退出交互式模式。
为了进入交互式模式更加方便,添加为环境变量,可勾选自动添加,添加到本地磁盘;也可以手动添加。 添加方法:右击我的电脑-高级系统设置-高级-环境变量-系统环境变量path,编辑-新建然后添加解释器的安装路径c:\Python3\ win10操作方法。
右击我的电脑-高级系统设置-高级-环境变量-系统环境变量path,编辑 将环境变量复制出来,分号隔开加上解释器的安装目录,然后放到path里面。重新打开cmd,便不用全路径执行python.exe。 %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python27;C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32 win7添加方法
环境变量意义:方便查找和使用可执行命令
为了区分Python的版本,将Python安装目录下的Python.exe改个名字,比如python27.exe,python36.exe.然后将两个版本的Python编译器的安装目录都添加到环境变量。这样以后就方便在cmd命令行区分进入的是哪个版本的交互模式或者是使用哪个版本的编辑器了。
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Python27;C:\Users\Administrator\AppData\Local\Program\Python\Python36-32
问题一: 在环境变量里添加路径,路径不对或有空格会报错'python' 不是内部或外部命令,也不是可运行的程序或批处理文件。 问题二: 在环境变量里添加路径,冒号中文会报错'python' 不是内部或外部命令,也不是可运行的程序或批处理文件。 问题三: 用Python3执行正常,Python2执行乱码
右击cmd窗口栏,查看默认属性的默认代码页为36(ANSI/OEM-简体中文 GBK),Python
写一个文件(脚本),让Python解释器运行。 1)打开电脑终端,
2)输入命令:解释器路径 脚本路径(脚本文件的后缀名什么都行,只是为了识别文件类型,本质是打开文件,将文件内容复制到内存运行)
4、计算机编码知识:
计算机内部保存的电影等等,在底层硬件都是以二进制的形式存在。举个例子:如果你写了一个hello,计算机也是以01二进制来存储的,即在硬盘上的保存形式也是二进制。
01数字组合表示的含义早期是ASCAII码,8位表示一个字符。可以表示2^8个字符。
unicode 万国码 一个字符用32位即4个字节表示。能表示2^32个字符,现在使用到了21位。
由于unicode每个字符用32位,会浪费很多存储空间,于是有了utf-8。utf-8将unicode压缩了。即unicode一个字符占四个字节,在utf-8中就将没有用到的字节空间去掉,占了几个字节就用几个字节,不多占用字节。
utf-8格式的文件,用Python2,3执行。英文2,3执行都正常,中文用3正常,2乱码。 python3解释器默认编码utf-8。Python2解释器默认编码ASCAII码。由于编码格式不同,所以python2执行utf-8的文件会出现乱码。所以写文件为了考虑兼容性,在脚本开头写上编码格式utf-8。 头文件添加编码格式utf-8
# _*_ coding:utf-8 _*_
以后写程序最好写上上面的头文件,这样2,3运行都不乱码 Windows另存为某一个文件里的unicode实际上是utf-16。 编码以什么方式写,就要以什么方式打开,即编码和解码要一致。
综上所述,编写文件时,文件里面标记utf-8,文件保存也保存为utf-8. mac用户cmd默认编码utf-8,我们中国常用的Windows系统默认gbk编码
用不同的编辑器运行Python脚本的方法
问题四: Windows新建文本文档不是utf-8编码格式,报错:SyntaxError: Non-UTF-8 code starting with '\xc2' in file c:\pyfile\test.txt on l ine 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for de tails 解决:打开文本文件另存为utf-8格式,此为Python3执行报错
问题五: Windows新建文本文档不是utf-8编码格式,报错:SyntaxError: Non-ASCII character '\xc2' in file C:\pyfile\test.txt on line 1, bu t no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 解决:打开文本文件另存为utf-8格式,此为python2执行报错
utf-8,一般用3个字节表示一个中文, gbk 两个字节一个中文
chcp 65001 cmd命令行执行可以修改成utf-8格式
a.py #!/usr/bin/env python #在Linux中指定解释器路径
这样执行可执行文件 ./a.py 自动去找文件的第一行为解释器路径
5、输出print():
5.1、print简单使用
print() 中间写上你想要输出的东西
print(你好) print('你好')
print(666) print('666')
print(你好)会报错 未定义
数据类型:
'mcw'/ "xiaoma" / '''aaa'''/"""bbb""" 引号引起来的,一般称为字符串
双引号的意义:print('小"马') 打印出双引号,外面用单引号, print("小'马") 打印出单引号,外面用双引号。
三引号的意义:换行 print("""小 名""")
666, 一般称为数字或整形
True/False 一般称为 布尔类型 print(True) print(False)
python2和python3的输出区别: py2: print "你好" py3: print('你好') Python2.7也支持python3的打印格式了。
5.2、print()函数的解释
def print(self, *args, sep=' ', end='\n', file=None): """ print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) 默认情况下,将值打印到流或sys.stdout。 可选关键字参数: 文件(file):类似于文件的对象(流);默认为当前的sys.stdout。 sep:在值之间插入的字符串,默认为空格。 结束(end):在最后一个值后追加的字符串,默认为换行符。 冲洗(flush=):是否强制冲洗水流。 """ pass
5.3、print()换行问题:
在python中,输出函数总是默认换行,比如说:
for i in range(4): print(i) ------------结果: 0 1 2 3
这种输出太占“空间”,如下进行不换行输出
end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符。
for mcw in range(5): print(mcw,end='') ----------------结果: 01234 for mcw in range(5): print(mcw,end=' ') --------------结果: 0 1 2 3 4 for mcw in range(5): print(mcw,end='*') -----------结果; 0*1*2*3*4* #每次打印的末尾都打印了*号
但如果,我们同时运行上面两段代码,结果会如下所示,而我们需要的是在两次输出间,实现换行。
for mcw in range(5): print(mcw,end=' ') for mcw in range(5): print(mcw,end='*') ------------------结果: 0 1 2 3 4 0*1*2*3*4*
如何实现换行?
1)这时如果在两次打印中加个打印换行,结果如下:
for mcw in range(5): print(mcw,end=' ') print('\n') for mcw in range(5): print(mcw,end='*') --------------结果: 0 1 2 3 4 0*1*2*3*4*
#结果是多出了空行,因为print()本身就是默认换行的,再加上换行符,相当于换行两次
2)二者中间加print(),print()本身自带换行
for mcw in range(5): print(mcw,end=' ') print() for mcw in range(5): print(mcw,end='*') -----------------结果: 0 1 2 3 4 0*1*2*3*4* for mcw in range(5): print(mcw,end=' ') print("|---") for mcw in range(5): print(mcw,end='*') ------------结果: 0 1 2 3 4 |--- 0*1*2*3*4* #如结果所示,print是在无论打印与否,是否是打印能显示的字符还是空,都会换行
5.4 print+\r实现覆盖之前的内容,可以实现进度条
import time for i in range(100): time.sleep(1) msg="%s%%\r"%i print(msg,end="")
5.5、python2的打印
加上括号会把括号打印出来,并且中文也显示不出来。去掉括号,字符串还是用字符串的方式引号去用,变量还是变量,逗号隔开多个字符串或变量,也就是除了不加括号,打印的内容方法和python3差不多,至于参数是否有差别暂且不看。
6、变量
content=5 print(content) 变量的要求:
1、变量名只能包含:字母、数字、下划线 mcw2_a="小马and"
2、数字不能开头
3、不能是Python的关键字
字符串乘多少次表示可以复现多少次
#自我注解:变量三要求mcw2_a="小马and"
正确案例1:
a=b=c=d=1 #给多个变量赋值同样的值
print(a,b,c,d)
-----------------结果:
1 1 1 1
正确案例2:
a,b,c,d="mcw1","mcw2","mcw3","mcw4"
print(a,b,c,d)
--------------结果:
mcw1 mcw2 mcw3 mcw4
错误案例1: a,b,c,d=0 #给多个变量不能这样赋值 print(a,b,c,d) ---------------结果: a,b,c,d=0 TypeError: 'int' object is not iterable #iterable 网络 可迭代的; 可重复的; 迭代的;
错误案例2:
a,b,c,d="xiaoma"
print(a,b,c,d)
---------------结果:
a,b,c,d="xiaoma"
ValueError: too many values to unpack (expected 4) #要解包的值太多(应为4)参数少了
错误案例3:
a,b,c,d="2"
print(a,b,c,d)
----------结果:
a,b,c,d="2"
ValueError: not enough values to unpack (expected 4, got 1) #将错误案例2的改成2,报错变了
7、输入input():
user_name=input("请输入你的姓名:")
message=user_name+" 学生" print(message)
输入数据按回车输入结束,并用变量接收输入的内容
用户名密码输入,判断后再执行下面的操作或输出对应的字符串
注意:input输入得到的内容永远是字符串,所以可以对输入的内容进行字符串的拼接,但是不能和数字进行运算。如果想进行数字运算,先将输入的字符串转换为数字int()
python2和python3的输入的区别:python2输入是 raw_input
#自我注解:需要别人输入(需要交互)input
8、注释
#单行注释
"""
ls