python基础之1-安装
author:headsen chen
date :2018-03-22 17:16:14
notice :This article created by headsen chen and not allowd to copy.
1,Python安装
windows:下载python3.6_64位,双击,一路默认安装就行了
1)、下载安装包
    https://www.python.org/downloads/
2)、安装
    默认安装路径:C:\python27
3)、配置环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
    如:原来的值;C:\python27,切记前面有分号
linux、Mac
无需安装,原装Python环境
  
2,Hello World程序
在linux 下创建一个文件叫hello.py,并输入
print("Hello World!")
然后执行命令:python hello.py ,输出
localhost:~ jieli$ echo "print('hello word')" >hello.py
localhost:~ jieli$ python hello.py
Hello World!
3,指定解释器
上一步中执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。
如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:
localhost:~ jieli$ cat hello.py
#!/usr/bin/env python     ---------> 启用默认的首选python版本,只要是可执行程序,就要告诉操作系统我用什么解释器来解释该程序,如shell写上:#!/bin/bash
print "hello,world"
localhost:~ jieli$ chmod 755 hello.py
如此一来,执行:
localhost:~ jieli$ /tmp/hello.py (执行前需给予 hello.py 执行权限,chmod 755 hello.py!!!!)
补充:python的程序两种写法:
#!/usr/bin/env python   ----> 到整个系统里去找python的环境变量
#!/usr/bin/python    ----> 这里指定了只能到这个绝对路径下的python,当你用源码包安装了python时,调用的python仍然是这个绝对路径下的python。
实例:
vim chinese.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "你好,世界"
chmod +x chinese.py
4,在交互器中执行(Windows上直接安装python3.6,或者Linux上云溪python) 
除了把程序写在文件里,还可以直接调用python自带的交互器运行代码, 
localhost:~ jieli$ python
Python 2.7.10 (default, Oct 23 2015, 18:05:06)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World!")
Hello World!
5,脚本开头模板配置方法:
#!/usr/bin/env python   ------------------>  在Windows中不需要这一条。windows中的pycharm中不需要这一条
#_*_coding:utf-8_*_    ------------------>  使得该文件支持中文,否则中文显示乱码。补:python3.x默认支持utr-8,不加也可以
# Descripe: xxx
# Author:chen
# Date: xxx
配置默认的模板:视图--》工具栏(view ---> toolbar),点击新生成的双头扳手的图标,编辑器(editor)--->文件和代码模板(file and code templates)-->pythor script,添加以上信息--->点击应用,确定。
6,pycharm安装及使用方法:
Windows上安装好之后:运行:先注册,引用python3.6执行程序的绝对路径,新建一个项目,新建一个目录,新建一个python file。直接编辑,
7,变量(pycharm里面演示) 
声明变量
#!/usr/bin/env python   ------------------>在Windows中不需要这一条。
#_*_coding:utf-8_*_
# Author:chen    
name = "Abcd JCK"
print(“My name is ”,name)
上述代码声明了一个变量,变量名为: name,变量name的值为:"Abcd JCK" 
注意:代码里中间有个逗号,作用是将代码和变量区分开,代表了两个参数传给了print,否则代码错误,运行后则正常在一起的。
变量定义的规则:
变量名只能是 字母、数字或下划线的任意组合,不能有特殊字符。
变量名的第一个字符不能是数字,变量名中间不能有空格。
以下关键字不能声明为变量名 ['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']
实例:girl_of_oldboy
理解变量的赋值,变量是保存在内存中的。供后续的程序随时调用。
name = "Alex Li"
name2 = name
print(name,name2)
name = "Jack"
print(name,name2)  ——————> Jack Alex Li
python里的变量分两种:常量和变量
常量:NAME = abc  大写的变量名,代表这个变量不要改。
变量:name = abc,这个变量的值可以随便重新替换。
8,字符编码
ython解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号,GB2312 支持的汉字太少。
GBK1.0 ,1995年的汉字扩展规范,收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。
GB18030,2000年的 是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。
从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
报错:ascii码无法表示中文
#!/usr/bin/env python
print "你好,世界"
改正:应该显示的告诉python解释器,用utf-8来解释源代码,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "你好,世界"
注意:python3里面默认就采用utf-8 的编码解释器,所以 # -*- coding: utf-8 -*- 可以省略不写。python2里面必需加上才能支持中文。
9,python里注释的写法:
   单行注释:# 被注释内容
   多行注释:,,, 被注释内容 ,,,  (注意:双引号也可以。python中无区别,完全一样)
,,,另外一个作用:打印多行:
name = ,,,
abadf = asdfaf
sssssss
5555555555
,,,
print(name)  
10,用户输入:input函数,将输入的数值赋予给变量。
例1:
#!/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 )
扩展:
#_*_coding:utf-8_*_
# Author:chen
name = input('What is your name?')
print('\033[031mHello\033[0m','\033[032mname\033[0m')
颜色的输入方法:
红色:\033[031m xxx \033[0m
绿色:\033[032m xxx \033[0m
蓝色:\033[033m xxx \033[0m
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import getpass
# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")
# 打印输入的内容
print(pwd)
11,格式化输出
例1:
name = input('name:' )
age = input('age:' )
job = input('job:' )
salary = input('salary:' )
info = '''
------ info of %s  ----   ------>s是string的简写,这里的%s表示引用变量的占位符,表示这个位置为变量,该变量可以是字符也可以是数字,但数字也当成字符串的类型来处理,d为纯数字类型的。引入这个的作用就是判断输入的数据的类型。    
name:%s
age:%s
job:%s
salary:%s
''' % (name,name,age,job,salary)    ------> 将占位符与具体的变量对应上。这里必需与站位符一一对应,否则报错。
print(info)         -----------------> 注意。引用变量时不能加引号,加了引号就成了打印这个字符串了。
s:string 字符串
d:数字(整数)
f:浮点(小数)
引入这个的作用就是判断输入的数据的类型。
打印一个变量的数据类型:
age = input(age: )
print(type(age))
---->
age:22
<class 'str'>  -------------类型:字符串
注意:python中默认所有的输入(当你输入数字123时),都当成了字符串类型的来处理:str
字符串类型转换
强制将一个字符型转成整数型:int函数来处理:integer:整形,整数形式
age = int(input(age: ))
print(type(age),type(str(age)))
------>
age:11
<class 'int'><class 'str'>
扩展:将一个整形的输入再转成字符串:
age = int(input('age:'))
print(age,type(age),type(str(age)))
例2:字符串变量里的一种字符串引用方式:.format使用方法
name = input(name: )
age = input(age: )
job = input(job: )
salary = input(salary: )
info3 = '''
----------- info of {0}---------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
''' .format(name,age,job,salary)
print(nifo)
12,输入密码时,隐藏密码,在pycharm里不好使,在Python里可以用
12.1,明文输入,例:
username = input('username:')
password = input('password:')
print(username,password)
执行后上面的password是明文的形式
12.2,getpass模块使用
要想将密码的明文改成密文,要引用python自带的一个标准库里的getpass模块。在pycharm里做实验不好使,写法如下:
该实验在cmd里的python中运行和在windows上安装的python3.6上运行的效果一样,都可以模拟一下的实验效果,逐行敲一下命令就可以了
import getpass
username = input("username: ")
password = getpass.getpass("password: ")  -------------------getpass是一个模块。模块是一个已经封装好的一堆功能得程序,导入之后就可以直接用,不用重新写了
print(username,password)
实演过程如下(直接在python软件里运行或者开始---cmd ---调用python命令行后运行):
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)]
 on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import getpass
>>> username = input('username:')
username:jack
>>> password = getpass.getpass('password:')
password:
>>> print(username,password)
jack abc123
>>>
开始--->运行--->cmd--->
cd C:\Users\Administrator\AppData\Local\Programs\Python\Python3.6
python
... 下面的过程和上面的一样
补:模块又叫库,分为标准库和第三方库。
    标准库:不需要安装,只要导入就可以用的库
    第三方库:
windows里运行:在python里运行:
python passwd.py
--->username:alex
--->password:     -----------此时输入的密码就不显示出来了
--->alex dfsfsglasjgjasl         
验证密码
完整代码:
#_*_coding:utf-8_*_
# Author:chen
_username = 'alex'
_password = 'abc123'
username = input('username:')
password = input('password:')
if _username == username and _password == password:
   print('Welcome user {name} login to here.'.format(name=username))   ------------》或者用这种 {0} .fromat{username}
else:
   print('Invalid username or password!')
分项解释如下:
_username = 'alex'   -------------- 如果写成:_username = alex 此时后面的Alex表示一个变量,将Alex变量的值赋给_username这个变量
_password = 'abc123'
username = input('username:')
password = input('password:')
if _username == username and _password == password:    -------------冒号:换行时下一行自动缩进。所以下行会自动有空格
  print('Welcome user {name} login ...'.format(name=username))  -------->或者写成:print(‘Welcome user {0} login...’.format(username))
else:
  print('Invalid username or password!')   ------------------ 可以看做是else的子语句。
shell中不需要缩进。但要有fi来结束。for循环中需要done来结束。在Python中没有这些结尾,Python有强制缩进,所以不需要这些结尾标识符
IndentationError:就是缩进的错误。Python语句中不能随便的缩进。只能顶格写,只能是该语句是上个语句的子语句时才会自动的缩进。
13,if语句和while循环
猜一次就退出,无循环,判断之后就退出了
age_of_oldboy = 56
guess_age = input('guess age:')  ------改成:guess_age = int(input('guess age:')) #若不改,会报错,因为你输入的字符串的类型,无法和56进行比较大小
if guess_age == age_of_oldboy:
  print("yes,you got it.")
elif guess_age > age_of_oldboy:
  print(‘think smaller’)
else:
  print('think bigger!')
注意:Python3里你输入的不论是数字还是字符串都当成字符串,而字符串是不能进行大小比较的
....................................................................................
count = 0
while True:
  print('count:',count)
  count = count +1      -----------> count +=1 也可以, 此时,该循环会无限循环下去。
  if count == 1000:   ------------> 当count达到1000时,跳出循环。
    break  -------> 跳出break的上层的循环,而不是上上层的循环
扩展实例:
for i in range(10):
print(i)
if i==3:
for j in range(10):
print(j)
if j==5:
break
效果如下:
0     ------------ i = 0 
1     ------------ i = 1
2     ------------ i = 2
3     ------------ i = 3
0     ------------ j = 0
1     ------------ j = 1
2     ------------ j = 2
3     ------------ j = 3
4     ------------ j = 4
5     ------------ j = 5  ,然后break生效,跳出当前层次for的循环
4     ------------ i = 4  继续上一层的for循环。
5     ------------ i = 5
6     ------------ i = 6
7
8
9
..................................................................................
猜对时才退出:while True 就是死循环,一直循环下去
age_of_oldboy = 56
while True:
  guess_age = input('guess age:')  ------改成: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!')
..................................................................................
猜对和猜不对有三次时退出
age_of_oldboy = 56
count == 0
while True:
  if count ==3:
    break
  guess_age = input('guess age:')  ------改成: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
..........................................................................
上述代码优化下:
age_of_oldboy = 56
count = 0
while count <3:
  guess_age = input('guess age:')  ------改成: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
.......................................................................................
三次猜错加提示:
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: ------------------------------------- 当三次都猜错时,出一个提示。
  print('you have tried too many times,fuck off.')
..........................................................................................
上述代码优化如下:while ... else...结构使用 
age_of_oldboy = 56
count = 0   ---------------------》 注意:这里的不能用==,而只能用=,赋值的意思。
while count <3:   ---------------------》当是while True时,不走else下的代码
  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:    ---------》当while的条件成立时,走上面的代码,当while的代码不成立时,走else下的代码,当条件是while True时,不走else下的代码
  print('you have tried too many times,fuck off.')
注意:shell中没有这种语法。
14,for循环
for i in range(10): -------> i就是临时变量,range(10) 就是循环了10次。赋值从0开始,到9结束。和shell中seq 10不同,从1开始到10结束
  print('loop',i)
隔着数循环(从0开始,每次增加2,到10结束,不包括10):
for i in range(0,10,2):
  print('loop',i)
------ >
loop 0
loop 2
loop 4
loop 6 
loop 8
for i in range(0,10,3): ---> 此时的循环就是:0, 3, 6,9
延伸:for ... else ... 结构(for下面循环走完,走else下面的代码)
age_of_oldboy = 56
for i 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!')
else:     意思:当for循环里的代码正常走完了,就执行else下的代码;不正常走完(break)时,就不走else代码,原理和while...else...一样的。
  print('you have tried too many times,fuck off.')
15,continue:跳出本次循环,继续下次循环
  break:结束本次循环,跳出整个循环
eg:
for i in range(10):
  if i <3:
    print("loop",i)
  else:
    continue
    print("hehe......")   注意:此时不打印下面的print内容,又跑到第一层去了。continue继续执行下次循环,本次循环没有执行完成的不执行了(continue后的不执行)
上例要想显示出“hehe......”就得改成:
    for i in range(10):
  if i<3:
  print('loop',i)
      else:
  print('hehe.....')
  continue   可以省略掉,效果一样的。因为实在for循环里,自动循环,而且该循环有结束的控制条件:range(10)
python基础之1-安装的更多相关文章
- Python基础1--Python的安装
		
一.python的安装 Windows: 1) https://www.python.org/下载 2) 傻瓜式安装 3) 设置python环境变量 计算机-属性-高级系统设置-环境变量,将C:\Py ...
 - python基础教程001_安装python
		
1.安装python Windows http://www.python.org下载python安装包 比如python-2.7.12.msi执行安装 安装完毕后,开始->搜索程序跟文件-> ...
 - python基础(3)-pycharm安装&for循环&format字符串&list列表&set集合使用
		
安装IDE(PyCharm)&破解 点击下载安装包,安装. 点击下载破解补丁. 进入pycharm安装bin目录,将破解补丁copy到当前目录. 在bin目录下找到pycharm.exe.vm ...
 - python 基础 9.0 安装MySQL-python-1.2.5客户端
		
一. 安装客户端 python 标准数据库接口为Python DB-API,Python DB-API 为开发人员提供了数据应用编程接口.参考地址:https://wiki.python.or ...
 - python基础一(安装、变量、循环、git)
		
一.开发语言分类 系统的开发语言有java.c++.c#.python.ruby.php等等,开发语言可分为编译型语言和解释型语言. 编译型语言就是写好代码之后就把代码编译成二进制文件,运行的时候运行 ...
 - Python零基础入门(安装步骤,验证方式, 简单操作)
		
本篇文章适合新人小白初步了解Python,涵盖Python的介绍.安装以及简单的基础操作. 1.Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.它的设 ...
 - python基础系列教程——Python库的安装与卸载
		
python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...
 - python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda
		
---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...
 - Python入门基础学习(环境安装/字符串)
		
Python基础学习笔记(一) 编译性语言与解释性语言: 编译性语言:读完代码再执行,一般会生成一个文件,如C语言会生成一个.h的文件给计算机执行 如:C,C++,C#,Java,Go 解释性语言:读 ...
 - Python基础-1 python由来 Python安装入门  注释 pyc文件 python变量 获取用户输入 流程控制if while
		
1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...
 
随机推荐
- opensips编译安装时可能遇到的问题
			
错误一: ERROR: could not load the script in /usr/local//lib64/opensips/opensipsctl/opensipsdbctl.pgsql ...
 - C#中各种集合类比较
			
数组(Array)的不足(即:集合与数组的区别) 1. 数组是固定大小的,不能伸缩.虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是 ...
 - RESTful风格的SSM框架搭建
			
1 使用idea编辑工具,maven项目构建工具搭建RESTful风格的java项目 2 进行项目配置 2.1 pom文件依赖 <project xmlns="http://maven ...
 - [转]winform程序textbox滚动条保持在最下面 内容不闪烁
			
在开发winform程序时,会用到textbox控件来显示信息,当把textbox的Multiline属性改为Ture时(即多行显示状态),ScrollBars属性改为Vertical(内容过多时,显 ...
 - 【Android】15.0 第15章 广播和通知—本章示例主界面
			
分类:C#.Android.VS2015: 创建日期:2016-02-28 一.简介 广播(Broadcast):其功能类似于收音机的广播,你只要调到那个台(只要在接收的类中注册了要接收的广播),就能 ...
 - Tomcat7中开启gzip压缩功能的配置方法
			
使用gzip压缩可以减少数据传输大小,加快网页加载速度.很多大站都开启了gzip压缩,不过也有很多网站并没有开启gzip压缩,上次看了一篇文章说开启gzip压缩后对搜索引擎不友好,但从带宽和流量的角度 ...
 - CSS学习笔记(11)--Flex 布局教程:语法篇
			
原文--阮一峰博客 作者: 阮一峰 日期: 2015年7月10日 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 ...
 - 跟着百度学习php之ThinkPHP的运行流程-2
			
Thinkphp为了提高编译的效率,第一次运行的时候thinkphp会把文件全部编译到temp目录下的~runtime.php文件,在第二次运行的时候会直接读取这个文件.所以我们在线下自己写代码测试的 ...
 - rt serial 的编写
			
/* * Copyright (C) 2005-2007 Jan Kiszka <jan.kiszka@web.de>. * * Xenomai is free software; you ...
 - URLDecoder: Incomplete trailing escape (%) pattern问题处理
			
http://blog.csdn.net/yangbobo1992/article/details/10076335 _________________________________________ ...