Python的安装(Windows平台下)
1.下载安装包:https://www.Python.org/downloads/
2.默认安装路径:C:\Python2.7
3.配置变量环境:
右键computer→属性→高级系统设置→高级→环境变量→在第二个内容框中找到变量名为path的一行,双击→Python安装目录追加到变量值中,用;分割
指定解释器
在运行Python程序时,必须明确指定程序由Python解释器来执行. 如下:
#!/usr/bin/env python →→→→这句话的作用:声明解释器
print “Hello world”
字符编码
程序开始运行之前,除了需要声明解释器,还要告诉解释器采用哪一类字符编码. 我们一般采用utf-8的编码. 在程序中编写如下:
#!/usr/bin/env python
# -*-coding:utf-8 -*- 或者 #coding = utf-8
变量定义与规则
定义变量的目的是为了给数据在内存中创建一个带有“编号”的容器,然后将需要的数据存储在这个容器中. 程序在后面运行时,如果要用到容器里面的数据,就可以直接指向这个变量名.
总结起来就是:它供下一个程式使用的值
规则:
1.变量名只能是字母、数字、或者下划线的任意组合.
2.变量名的第一个字符不能是数字
3.以下关键字不能声明为变量名
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‘
注释
单行注视:# 被注释内容
多行注释:""" 被注释内容 """
用户输入
#!/usr/bin/env python
# -*-coding:utf-8 -*-
name = raw_input("what is your name?") #raw_input它仅在python2.x中生效
name = input("what is your name?")
print("Hello" + name)
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import
getpass
pwd
=
getpass.getpass(
"请输入密码:"
) # 将用户输入的内容赋值给 name 变量
print
(pwd) # 打印输入的内容
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import
sys
print
(sys.argv)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import
os
os.system(
"df -h"
)
#调用系统命令
import
os,sys
os.system(‘‘.join(sys.argv[
1
:]))
#把用户的输入的参数当作一条命令交给os.system来执行
以下代码为格式化字符串
%s 字符串
%d 整数
%f 浮点数
#!/usr/bin/env python3
# -*-coding:utf-8 -*-
# Author:Alex
name = input("in put your name")
age = int(input("in put your age"))
job = input("in put your job")
msg = ‘‘‘
information of user %s:
---------------------
name: %s
age : %d
job : %s
---------end---------
‘‘‘%(name,name,age,job)
print(msg)
exit("退出了") #直接退出程序
运算符:
算术运算符:
+ 加法 - 对操作符的两侧增加值 a + b = 30
- 减法 - 减去从左侧操作数右侧操作数 a - b = -10
* 乘法 - 相乘的运算符两侧的值 a * b = 200
/ 除 - 由右侧操作数除以左侧操作数 b / a = 2
% 模 - 由右侧操作数和余返回除以左侧操作数 b % a = 0
** 指数- 执行对操作指数(幂)的计算 a**b = 10 的幂 20
比较操作符:
== 检查,两个操作数的值是否相等,如果是则条件变为真。 (a == b) 不为 true.
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 (a != b) 为 true.
<> 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 (a <> b) 为 true。这个类似于 != 运算符
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 (a > b) 不为 true.
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 (a < b) 为 true.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 (a >= b) 不为 true.
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 (a <= b) 为 true.
赋值运算符
= 简单的赋值运算符,赋值从右侧操作数左侧操作数 c = a + b将指定的值 a + b 到 c
+= 加法AND赋值操作符,它增加了右操作数左操作数和结果赋给左操作数 c += a 相当于 c = c + a
-= 减AND赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数 c -= a 相当于 c = c - a
*= 乘法AND赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数 c *= a 相当于 c = c * a
/= 除法AND赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数 c /= a 相当于= c / a
%= 模量AND赋值操作符,它需要使用两个操作数的模量和分配结果左操作数 c %= a is equivalent to c = c % a
**= 指数AND赋值运算符,执行指数(功率)计算操作符和赋值给左操作数 c **= a 相当于 c = c ** a
位运算符:
位运算符作用于位和位操作执行位。假设,如果a =60;且b =13;现在以二进制格式它们将如下:
计算机能表示的最小单位是一个二进制位
计算机能存储的最小单位是一个二进制位
一个二进制位单位是bit(8bit是1byte[字节])
a = 0011 1100 60
b = 0000 1101 13
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Python语言支持下位运算符 二进制移动运算比乘除速度快
& 与运算 0与0为0 1与0为0 1与1为1 二进制和复制操作了一下,结果,如果它存在于两个操作数。 (a & b) = 12 即 0000 1100
| 或运算 0与0为0 1与0为1 1与1为1 二进制或复制操作了一个比特,如果它存在一个操作数中。二进制或复制操作了一个比特,如果它存在一个操作数中。 (a | b) = 61 即 0011 1101
^ 异或运算 0与0为0 1与0为1 1与1为0 二进制异或运算符的副本,如果它被设置在一个操作数而不是两个比特。二进制异或运算符的副本,如果它被设置在一个操作数而不是两个比特。 (a ^ b) = 49 即 0011 0001
~ 按位取反 将一个数字的二进制取反,然后用其减去(本位数能表示的最大数值+1) 例如60的按位取反为195-256=-61 二进制的补运算符是一元的,并有“翻转”位的效果。 (~a ) = -61 即 1100 0011以2的补码形式由于带符号二进制数。
<< 二进位向左移位运算符。坐移相当于乘法。左操作数的值左移由右操作数指定的位数。 b << 1 = 26 即 0001 1010
>> 二进位向右移位运算符。右移相当于除法,但只取整数。左操作数的值是由右操作数指定的位数向右移动。 a >> 2 = 15 即 0000 1111
注意:每次二进制向左或者向右移N位,相当于乘或除一个2的N次方
逻辑运算符
and 所谓逻辑与运算符。如果两个操作数都是真的,那么则条件成立。 (a and b) 为 true.
or 所谓逻辑OR运算符。如果有两个操作数都是非零然后再条件变为真。 (a or b) 为 true.
not 所谓逻辑非运算符。用于反转操作数的逻辑状态。如果一个条件为真,则逻辑非运算符将返回false。 not(a and b) 为 false.
成员运算符:
in 计算结果为true,如果它在指定找到变量的顺序,否则false。 x在y中,在这里产生一个1,如果x是序列y的成员。
not in 计算结果为true,如果它不找到在指定的变量顺序,否则为false。 x不在y中,这里产生结果不为1,如果x不是序列y的成员。
标识运算符:
is 计算结果为true,如果操作符两侧的变量指向相同的对象,否则为false。 x是y,这里结果是1,如果id(x)的值为id(y)。
is not 计算结果为false,如果两侧的变量操作符指向相同的对象,否则为true。 x不为y,这里结果不是1,当id(x)不等于id(y)。
运算符优先级:
** 幂(提高到指数)
~ + - 补码,一元加号和减号(方法名的最后两个[email protected]和 - @)
* / % // 乘,除,取模和地板除
+ - 加法和减法
>> << 左,右按位转移
& 位‘AND‘
^ | 按位异‘或`‘和定期`或‘
<= < > >= 比较运算符
<> == != 等式运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 标识运算符
in not in 成员运算符
not or and 逻辑运算符
表达式if ... else
场景一、用户登陆验证
#!/usr/bin/env python
# -*- coding: encoding -*-
import
getpass
name
=
input
(
‘请输入用户名:‘
)
pwd
=
getpass.getpass(
‘请输入密码:‘
)
if
name
=
=
"alex"
and
pwd
=
=
"cmd"
:
print
(
"欢迎,alex!"
)
else
:
print
(
"用户名和密码错误"
)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
my_age
=
28
user_input
=
int
(
input
(
"input your guess num:"
))
if
user_input
=
=
my_age:
print
(
"Congratulations, you got it !"
)
elif
user_input < my_age:
print
(
"Oops,think bigger!"
)
else
:
print
(
"think smaller!"
)
#_*_coding:utf-8_*_
__author__
=
‘Alex Li‘
for
i
in
range
(
10
):
print
(
"loop:"
, i )
输出:
loop:
0
loop:
1
loop:
2
loop:
3
loop:
4
loop:
5
loop:
6
loop:
7
loop:
8
loop:
9
for
i
in
range
(
10
):
if
i<
5
:
continue
#不往下走了,直接进入下一次loop
print
(
"loop:"
, i )
for
i
in
range
(
10
):
if
i>
5
:
break
#不往下走了,直接跳出整个loop
print
(
"loop:"
, i )
while loop 循环
count
=
0
while
True
:
print
(
"你是风儿我是沙,缠缠绵绵到天涯..."
,count)
count
+
=
1
count
=
0
while
True
:
print
(
"你是风儿我是沙,缠缠绵绵到天涯..."
,count)
count
+
=
1
if
count
=
=
100
:
print
(
"循环100次已经完成..."
)
break
#!/usr/bin/env python
# -*- coding: utf-8 -*-
my_age
=
28
count
=
0
while
count <
3
:
user_input
=
int
(
input
(
"input your guess num:"
))
if
user_input
=
=
my_age:
print
(
"Congratulations, you got it !"
)
break
elif
user_input < my_age:
print
(
"Oops,think bigger!"
)
else
:
print
(
"think smaller!"
)
count
+
=
1
#每次loop 计数器+1
else
:
print
(
"猜这么多次都不对,你个笨蛋."
)