python基础之day1
Python 简介
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
Python为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。
除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。
1.Python的种类
- Cpython:Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
- Jyhton:Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
- IronPython:IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
- PyPy(特殊):Python实现的Python,将Python的字节码字节码再编译成机器码。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高 Python代码的执行速度。
- RubyPython、Brython ...
Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
2.Python环境安装
windows:
1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python27
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python27,切记前面有分号
linux:
Linux的yum依赖自带Python,为防止错误,如果需要安装一个更高版本如下:
查看默认Python版本
python -V 1、安装gcc,用于编译Python源码
yum install gcc
2、下载源码包,https://www.python.org/ftp/python/
3、解压并进入源码文件
4、编译安装
./configure
make all
make install
5、查看版本
/usr/local/bin/python2.7 -V
6、修改默认Python版本
mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum执行异常,修改yum使用的Python版本
vi /usr/bin/yum
将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
Python基础之变量、字符编码、用户输入、流程控制
第一个Python
在python IDLE 下输入如下程序
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> print ("Hello,world")
Hello,world
执行python 程序文件,在Linux或者windows 下创建hello.py 输入如下内容
#!/usr/bin/env python #指定Python解释器 print('hello, world') #打印"hello,world 信息"
变量
1.声明变量
#-*- coding:utf-8 -*- name = "Derby"
上述代码声明了一个变量,变量名为: name,变量name的值为:"Derby"
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['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']
2、变量的赋值
#!/usr/bin/env python
# -*- coding: utf-8 -*- name1 = "dengbinbin"
name2 = "derby"
#!/usr/bin/env python
# -*- coding: utf-8 -*- name1 = "Derby"
name2 = name1
3、Python内置特殊变量
(1). __doc__、__package__
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File : test1.py """
这是注释
""" import sys,os
from lib import common print(__doc__) #表示一个文件的注释 print(__package__) #代表一个包的名称(此文件没有包)
print(common.__package__) #(从lib包里导入的文件) >>>这是注释 >>>None
>>>lib
(2). __file__
获取当前文件名称
import sys,os print(__file__) #代表当前文件名(如果在创建的工程内能表示全路径) #os.path.abspath(__file__) #可以获取文件的绝对路径
print(os.path.abspath(__file__)) #经常用于获取文件的包名,导入包 print(os.path.dirname(os.path.abspath(__file__))) #获取文件的path路径
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) #获取上一级包名 >>>C:/Users/Administrator/PycharmProjects/dbb0928/1106/lib/common.py
>>>C:\Users\Administrator\PycharmProjects\dbb0928\1106\lib\common.py
>>>C:\Users\Administrator\PycharmProjects\dbb0928\1106\lib
>>>C:\Users\Administrator\PycharmProjects\dbb0928\1106
(3). __name__
当直接运行某个Python文件时,解释器内部把一个特殊变量__name__会
置为__main__,如果是导入函数或模块的则不会
import sys,os
from lib import common print(__name__)
print(common.__name__) >>>__main__
>>>lib.common
一般用于主函数判断
#!/usr/bin/env python3
# -*- coding: utf-8 -*- ' a test module ' __author__ = 'Michael Liao' import sys def test():
args = sys.argv
if len(args)==1:
print('Hello, world!')
elif len(args)==2:
print('Hello, %s!' % args[1])
else:
print('Too many arguments!') if __name__=='__main__':
test()
字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(Python2默认ascill,Python3默认为utf-8)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
注释
当行注视:# 被注释内容
多行注释:""" 被注释内容 """ 或者 ''' 内容 '''
pyc 文件
执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
用户输入
Python2和Python3 用户输入的区别如下:
#!/usr/bin/env python
#_*_coding:utf-8_*_ #name = raw_input("What is your name?") #only on python 2.x
name = input("What is your name?")
print("Hello " + name )
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/10/4 12:59
# @Author : Derby
# @File : VerifyPasswd.py import getpass username = input('please input you username:')
#passwd = input('please input you passwd:') #直接输入看到密码
passwd = getpass.getpass("input passwd:") #不会回显密码 注意:只在Linux或windows命令行执行有效 if username == "derby" and passwd == "123456" :
print('Congratulation! authentication pass...') else:
print('username and password does not match... ')
流程控制
1.if...else 判断
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/10/4 13:52
# @Author : Derby
# @File : JudgeUser.py #判断输入用户的身份 name=input('请输入用户:')
if name == "admin":
print("超级管理员账户")
elif name == "user":
print ('管理员账户')
else:
print('普通用户')
Judge user
2.while和for 循环
while循环
while 条件: # 循环体 # 如果条件为真,那么循环体则执行
# 如果条件为假,那么循环体不执行 while True: # while 条件永远为真 # 循环体中没有任何跳出循环语句
# 此循环为死循环
for 循环
for 循环元素 in 循环元素集 : #循环体
e,g: for i in range(10):
print("loop:", i )
跳出循环之break 和 continue
break用于退出所有循环 while True:
print "123"
break
print "456" #以上输出为 123 continue用于退出当前循环,继续下一次循环 while True:
print "123"
continue
print "456" #以上输出一直输出123 直到你的机器牺牲
应用场景之猜数字
实现让用户不断的猜数字,但只给最多10次机会,猜玩三次提示用户是否继续,最后猜不对就退出程序,一下是逻辑图:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#author:Derby a=12
counter = 0
for i in range(10):
if counter<3:
guessNum=int(input("please input you guess number:"))
if guessNum==a :
print ("Congretulation! you guess right!")
break
elif guessNum<a:
print ("Think bigger!")
else:
print ("Think smaller!")
else:
answer=input("Do you want continue? \n press Y or N \t")
if answer=="y":
counter = 0
else:
break
counter += 1
猜数字
python基础之day1的更多相关文章
- python基础篇-day1
python基础篇 python是由C语言写的: pass 占位符: del,python中全局的功能,删除内存中的数据: 变量赋值的方法: user,pass = 'freddy','freddy1 ...
- Python基础(Day1)
一.Python的简介 1.Python的诞生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发 ...
- Python 基础学习day1
1.计算机的组成 CPU:相当于人的大脑,预算中心. 内存:临时加载数据或者程序. 缺点:断电即消失. 硬盘:存放所有的数据,输入输出设备. 2.什么是操作系统. 调控所有硬件与软件的中间介质. 3. ...
- Python基础,day1
一. Python介绍 目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, ...
- 9-Python基础知识-day1
Python基础知识-day1 Python 2 和Python 3 的区别: Python2 源码不标准,混乱,重复代码多:#-*-encoding:utf8 -*- 解决python2显示中文的问 ...
- Day1 - Python基础1 介绍、基本语法、流程控制
Python之路,Day1 - Python基础1 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼 ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- python基础day1
一.python介绍 1.1简介 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
随机推荐
- 【转】Caffe初试(八)Blob,Layer和Net以及对应配置文件的编写
深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成.Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型.它将所有的信息数据定义为blob ...
- javascript 核心语言笔记 4 - 表达式和运算符
表达式(expression)是 JavaScript 中的一个短语(phrases),JavaScript 解释器会将其计算(evaluate)出一个结果.程序中的常量.变量名.数组访问等都是表达式 ...
- spring注解总结
• @Controller 表示 负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写,表示某类是一个控制器组件 • @Service 表示负责注册一个bea ...
- JavaScript跨域提交数据
1.通过jsonp跨域 场景:假设前台有JS方法"crossJS", 1.1发送请求http://www.xxx.com/?callback=crossJS.(创建一个scr ...
- php json_encode
1.该函数只接受utf-8编码的字符串,其他编码的字符串会返回false 2.字符串中的斜线'/'会被自动转义成'\/',如果不想被转义,可用如下方式(适用于php5.4及以上) json_encod ...
- js 与 jq 的节点添加删除实例
JavaScript实例:XML DOM节点的添加 <!DOCTYPE html> <html> <head> <meta charset="utf ...
- 2014ACM/ICPC亚洲区北京站
1001 A Curious Matt 求一段时间内的速度单位时间变化量,其实就是直接求出单位时间内的,如果某段时间能达到最大那么这段时间内必定有一个或一小段单位时间内速度变化是最大的即局部能达到最 ...
- C# ADO.net 数据库连接池
前一阵开发一套系统,同组的同事提供了一个数据库连接组件,是他自己封装的,使用了自定义的连接池,用着很是不爽,而且经常会因为程序不严谨的原因,导致连接池里的连接被用完,也导致其他错误,因此我想自己研究一 ...
- Linux系统目录结构以及简单说明
Linux系统目录结构以及简单说明 linux目录图: / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...
- 一个简单的消息提示jquery插件
最近在工作中写了一个jquery插件,效果如下: 就是一个简单的提示消息的一个东西,支持最大化.最小化.关闭.自定义速度.自定义点击事件,数据有ajax请求和本地数据两种形式.还有不完善的地方,只做了 ...