Python学习笔记_week1
一、编程语言的分类
- 编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,Python是一门动态解释型的强类型定义语言。
- Python的优缺点
- Python解释器:CPython、IPython(金融用的多,交互器)、PyPy(推荐,速度快)、JyPython、IronPython
二、Python发展史
三、Python 2 or 3?
四、Python安装
五、Hello World 程序
- pycharm 开发工具,开发效率高,帮调试
六、变量
变量定义的规则:
变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
['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'] 全是大写表示常量
name = "JYH"
name2 = name
print("My name is",name) name ="PaoChe Ge"
print(name,name2) gf_of_oldboy="xxx"
GFOfOldboy="xxx" #Windows 的变量名喜欢这样写 PIE = 3.1415926 # 全大写表示常量
七、字符编码
计算机最底层只认识0,1(通电 or 不通电)---二进制(狼烟表示敌军人数),Python解释在加载.py文件中的代码时,会对内容进行编码(默认ASCII)。
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
八、用户输入
input默认输入的是字符串
name=input('''name:''')
age=input("age:")
job=input('job:')
salary=input('salary:')
info='''Name:'''+name+''+ '\nage:'+age+'\njob:'+job+'''\nsalary:'''+salary
print(info)
interaction
name=input('''name:''') # raw_input 2.x 与 input 3.x 是一样的 ,input 2.x 是多余的
age=int(input("age:")) # 强制转化为integer(整数)
job=input('job:')
salary=input('salary:')
print(type(age)) # 打印变量类型
age=str(age)
print(type(age))
info0='''Name:'''+name+''+ '\nage:'+age+'\njob:'+job+'''\nsalary:'''+salary # 不到迫不得已尽量不用
info1='''Name:%s\nage:%s\njob:%s\nsalary:%s'''%(name,age,job,salary) # %s 占位符,相当于shell中的$
info2='''Name:{_name}\nage:{_age}\njob:{_job}\nsalary:{_salary}'''.format(_name=name,_age=age,_job=job,_salary=salary)
info3='''Name:{0}\nage:{1}\njob:{2}\nsalary:{3}'''.format(name,age,job,salary)
print(info0)
interaction2
九、模块初识
(库)1、标准库:不需要安装,可以直接导入。2、第三方库,需要安装(如Django外部框架)。import 模块 首先在当前目录下找,所以不要用与模块相同的名字命名新的.py
第三方库一般存在site-package里面,安装的一些库也放在里面。标准库在lib里,如re.py(正则),socket.py(用于网络编程),threading.py(用于多线程)...
可以自己编写模块,导入时会自动在当前目录和环境变量中去找。
import os
#cmd_res=os.system("dir") # os.system一调用命令就执行,将结果输出到屏幕上,不保存结果
#print("-->",cmd_res) # 0 表示命令执行成功
#cmd_res=os.popen("dir")
#print("-->",cmd_res) # 打印的是内存的对象地址
#cmd_res=os.popen("dir").read() # 命令的结果存到内存的临时的地方,必须通过read方法取出来
#print("-->",cmd_res)
os.mkdir("new_dir") #在当前目录创建新的文件夹
os_mod
十、.pyc是什么?
其实Python和Java/C#一样,也是一门基于虚拟机的语言。
在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。
我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。
如果修改了,比较.pyc与源代码的更新时间,一样的话直接载入。
十一、数据类型初识
Python2.x里有长整数和整数之分,Python3.x没有长整数。
float(浮点型),可理解为小数,但不完全等同于小数。
布尔值:真或假,1 或 0
十二、数据运算
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
附录
- 十六进制,0123456789ABCDEF 二进制到16进制转换http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1
- bytes类型(字节数据类型(二进制))
- 文本总是Unicode,由str表示。二进制数据则由bytes类型表示(音频,视频)。文本和二进制的转化主要用于传输,通过编码,解码转换。
for:
for i in range(0,10,2):
print("loop",i)
for
continue:
while True:
s=input("enter:")
if len(s) < 3:
print("too small")
continue # 跳过本次循环,继续下次循环
if s=="quit":
break #结束循环
print("enough")
continue
guess:
age_of_oldboy=56
guess_age=int(input("guess age:"))
if guess_age==age_of_oldboy:
print("Yes!you got it...")
elif guess_age>age_of_oldboy:
print("Think smaller...")
else:
print("Think bigger!")
guess
for_guess:
age_of_oldboy=56
count=0
for i in range(3):
guess_age=int(input("guess age:"))
if guess_age==age_of_oldboy:
print("Yes!you got it...")
break
elif guess_age>age_of_oldboy:
print("Think smaller...")
else:
print("Think bigger!")
count +=1
else: # 与if count == 3:一样
print("you tried too many times...fuck off")
for_guess
guess_at_will
age_of_oldboy=56
count=0
while count<3:
guess_age=int(input("guess age:"))
if guess_age==age_of_oldboy:
print("Yes!you got it...")
break
elif guess_age>age_of_oldboy:
print("Think smaller...")
else:
print("Think bigger!")
count +=1
if count == 3:
continue_confirm=input("Do you want to keep guessing? Press ant key to keep guessing and press N or n to quit:")
if continue_confirm !="N" and continue_confirm!="n":
count=0
guess_at_will
loop_in_loop
for i in range(10):
print("-----",i)
for j in range(10):
print(j)
if j > 5:
break #结束当前循环
loop_in_loop
passwd:
import getpass # getpass 密文
username=input("username:")
password=getpass.getpass("password:") # getpass模块在pycharm中不好使
print(username,password)
passwd
_username='jyh'
_password=''
username=input("username:")
password=input("password:") if username==_username and password==_password:
print('Welcome user {} login...'.format(_username))
else:
print('Invalid username or password')
passwd2
import passwd2
passwd_import
sys:
__author__="jyh" import sys
# print(sys.path) # 打印环境变量 print(sys.argv) #pycharm中打印绝对路径,实际上应该是相对路径
print(sys.argv[2])
sys_mod
while:
count=1
while True:
count=count+1 # 与count +=1 一样
print("count:",count)
while
age_of_oldboy=56
count=0
while count<3:
guess_age=int(input("guess age:"))
if guess_age==age_of_oldboy:
print("Yes!you got it...")
break
elif guess_age>age_of_oldboy:
print("Think smaller...")
else:
print("Think bigger!")
count +=1
else: # 与if count == 3:一样
print("you tried too many times...fuck off")
while2
Python学习笔记_week1的更多相关文章
- python学习笔记整理——字典
python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...
- VS2013中Python学习笔记[Django Web的第一个网页]
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...
- python学习笔记之module && package
个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
- python学习笔记--Django入门四 管理站点--二
接上一节 python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...
- python学习笔记--Django入门0 安装dangjo
经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
- Pythoner | 你像从前一样的Python学习笔记
Pythoner | 你像从前一样的Python学习笔记 Pythoner
- OpenCV之Python学习笔记
OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...
随机推荐
- TCP/IP学习20180624
计算机要互相通信.要有标准. TCP/IP协议,很多协议在一起.所以也叫TCP/IP协议族.经常接触的也就十几种. TCP/IP协议族按层次分为四层: 应用层(最上一层,http,ftp,pop3,i ...
- .NET使用HttpRuntime.Cache设置程序定时缓存
第一步:判断读取缓存数据 #region 缓存读取 if (HttpRuntime.Cache["App"] != null) { return HttpRuntime.Cache ...
- PAT 乙级 1010 一元多项式求导 (25) C++版
1010. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一 ...
- 基于JavaScript 声明全局变量的三种方式详解
原文地址:http://www.jb51.net/article/36548.htm JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍. 声明方式一: 使用var(关键字)+变量名(标识符) ...
- jmap、jstack、jps无法连接jvm解决办法
转载 http://blog.51cto.com/zhangshaoxiong/1310166 一.背景 在对线上服务器的java应用dump操作时发现,以下报错,不能dump.jps也获取不到jav ...
- navicat for mysql 最简便的破解方法
Navicat 破解工具 1.安装Navicat软件 安装成功之后进行破解. 然后选择刚刚安装的Navicat安装路径下找到navicat.exe文件,点击选择即可激活 成功. (注意此步骤解析的是 ...
- mongodb 的一些基本命令以及 导入、导出,待更新
基本命令参考: https://blog.csdn.net/cckevincyh/article/details/78702674 导入导出参考:https://blog.csdn.net/djy37 ...
- [UE4]蓝图比C++慢10倍,是吗?
首先,蓝图肯定是比C++慢. 任何脚本语言(需要解释执行的语言),和C++相比可能达到十倍甚至百倍的差距.比如Java.Python.Lua,JS. 脚本语言是运行在虚拟机上的,所以它们比起直接运行的 ...
- 【Laravel】 常用的artisan命令【原创】
全局篇 查看artisan命令 php artisan php artisan list 查看某个帮助命令 php artisan help make:model 查看laravel版本 ...
- Linux中/目录扩容
1:原来的系统20G,目前增加到30G,我要把增加的10G扩容到/目录下 2:fdisk /dev/sda (对sda这块磁盘没有被使用的空间进行分区,联想Windows操作系统) 使用L ...