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-安装的更多相关文章

  1. Python基础1--Python的安装

    一.python的安装 Windows: 1) https://www.python.org/下载 2) 傻瓜式安装 3) 设置python环境变量 计算机-属性-高级系统设置-环境变量,将C:\Py ...

  2. python基础教程001_安装python

    1.安装python Windows http://www.python.org下载python安装包 比如python-2.7.12.msi执行安装 安装完毕后,开始->搜索程序跟文件-> ...

  3. python基础(3)-pycharm安装&for循环&format字符串&list列表&set集合使用

    安装IDE(PyCharm)&破解 点击下载安装包,安装. 点击下载破解补丁. 进入pycharm安装bin目录,将破解补丁copy到当前目录. 在bin目录下找到pycharm.exe.vm ...

  4. python 基础 9.0 安装MySQL-python-1.2.5客户端

    一. 安装客户端     python 标准数据库接口为Python DB-API,Python DB-API 为开发人员提供了数据应用编程接口.参考地址:https://wiki.python.or ...

  5. python基础一(安装、变量、循环、git)

    一.开发语言分类 系统的开发语言有java.c++.c#.python.ruby.php等等,开发语言可分为编译型语言和解释型语言. 编译型语言就是写好代码之后就把代码编译成二进制文件,运行的时候运行 ...

  6. Python零基础入门(安装步骤,验证方式, 简单操作)

    本篇文章适合新人小白初步了解Python,涵盖Python的介绍.安装以及简单的基础操作.  1.Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.它的设 ...

  7. python基础系列教程——Python库的安装与卸载

    python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...

  8. python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda

    ---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...

  9. Python入门基础学习(环境安装/字符串)

    Python基础学习笔记(一) 编译性语言与解释性语言: 编译性语言:读完代码再执行,一般会生成一个文件,如C语言会生成一个.h的文件给计算机执行 如:C,C++,C#,Java,Go 解释性语言:读 ...

  10. Python基础-1 python由来 Python安装入门 注释 pyc文件 python变量 获取用户输入 流程控制if while

    1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...

随机推荐

  1. CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手冊)

    今天,又一次弄我的个人云主机的环境.准备运营自己用Java写的个人官网等站点. 服务器环境:阿里云CentOS 6.4位 包含以下脚本在内的绝大部分命令和脚本,都是我亲自运行过,靠谱的. 完整的&qu ...

  2. mysql create dabase 语法详解

    由于SQL标准的存在,各个关系型数据库管理系统中创建库的语句都差不多 一.mysql 中创建数据库的语法如下: 1.创建数据库的语法: create {database | schema } [if ...

  3. macbook中使用彩色的ls

    1.首先,macbook中原装的ls和gnu的ls是不相同的,所以,要下载安装正牌ls brew install coreutils //gnu ls 在里面 2.因为和mac的ls有冲突,所以,co ...

  4. Atitit.mysql oracle with as模式临时表模式 CTE 语句的使用,减少子查询的结构性 mssql sql server..

    Atitit.mysql  oracle with as模式临时表模式 CTE 语句的使用,减少子查询的结构性 mssql sql server.. 1. with ... as (...) 在mys ...

  5. SMBUS的介绍与访问

    博文是为了总结自己在bios学习上面的点点滴滴,并且加深印象,由于本人水平有限,难免存在不足之处,望指正,同时感谢CSDN提供的平台.本文主要介绍的是SMBUS. 1  SMBUS的简介 特点: SM ...

  6. [POJ 1236][IOI 1996]Network of Schools

    Description A number of schools are connected to a computer network. Agreements have been developed ...

  7. python生成器,函数,数组

    1.什么是生成器用一个比喻来形容,工厂中生产保龄球的流水线,机器每次只生产一个保龄球,下次继续生产下一个,直到停止(原料不足,停止供电等条件)为止.机器就是我们的生成器. 2.使用示例在python中 ...

  8. 02、获取 WebView 控件中,加载的 HTML 网页内容

    在开发 app 的时候,WebView 是经常使用的控件.而且有时需要向 WebView 中的 html 内容 注入额外的 js 进行操作.这里记录一下在当前 WebView 控件中,获取 html ...

  9. Angular+Electron+VSCode的桌面应用

    Angular+Electron+VSCode的桌面应用 转自:http://blog.csdn.net/yr7942793/article/details/50986696 第一部分 Electro ...

  10. CentOS下安装网卡驱动

    前言最近,一台机器从FreeBSD换为CentOS,一路安装顺利.完事之后发现,网卡没有启用,dmesg | grep eth 命令确定网卡没有驱动导致的.于是开始了一路艰辛的安装过程. 安装过程1. ...