一.python 入门
1.1 python 中文编码
在学习python中文编码之前,我们需要了解一下什么是编码[默认:ascill]:
- 编码是用预先规定的方法将文字、数字或其他对象编成数码,或将信息转换成规定的电脉冲信号.编码是信息从一种形式或格式转换为另一种形式的过程.
- 然而我们需要了解的字符编码如下:
ASCII码:美国标准信息交换码;主要用来显示英文和欧洲语言;其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号.显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码.即:Unicode
Unicode码:也叫做万国码,目的是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536.
Utf-8:是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,中文字符用3个字节保存.
- 在python2.x和3.x之间的中文编码之间有一个区别是:在python2.x系列环境下需要声明或者指定字符编码;然而python3.x不需要声明字符编码.
- 关于中文编码如下:
GB2312:国标码,诞生于1980年,一共收录了7000多个汉语字符
GBK:1995年,一共收录了20000多个汉语字符
GB18030:是2000年为了取代GBK1.0而诞生的正式国家标准,同时还收录了少数民族语言文字
1.2 python and shell 第一个Hello Word程序:
1 #/usr/bin/env python 2 3 print ("Hello world") 4 5 >>:Hello world
python
1 #/bin/bash 2 3 echo "Hello world" 4 5 #>>:Hello world
Shell
1.3 python 注释:
#!/usr/bin/env python # -*- coding: UTF-8 -*- # 第一个注释 #号代表单行注释 ‘‘‘注释内容 吧啦吧啦 ‘‘‘之间插入要注释的内容(或者也可以使用"""之间插入注释内容) ‘‘‘ 注意事项:多行注释的内容可以按照相应的格式作为变量传入参数使用
1.4 python 变量:
什么是变量呢?照字面的意思来说就是可变化的量!尼玛!!太牵强了,简单点来说就是:用来指定不同的数据类型,这些变量可以存储整数,小数或字符;然后再程序中被调用的一片内存空间。
注意事项: 变量名只能是:字母,数字或下划线的任意组合.变量名的第一个字符不能是数字. 以下关键字不能声明为变量名: 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
1.5 python and shell 用户输入:
1.5.1 python 用户输入:
#!/usr/bin/env python # -*- coding: UTF-8 -*- #用户前台输入并赋值给变量name name = input("What‘s your name?") #打印出前台输入的信息 print (" Welcome to " + name + " BJ ")
1.5.2 shell 用户输入:
#/bin/bash #用户前台输入并赋值给Uo read -p "what‘s your name" Uo #给变量name赋值 name="welcome to beijing" #打印出前台输入的信息和变量的信息 echo $Uo$name
1.6 流控制If....Elif....Else:
1.6.1 python。 if....else语句
#!/usr/bin/env python # -*- coding: UTF-8 -*- #前台输入.在写if...else语句时需要注意符号(符号: == " ").变量后必须加空格 a = input("age_a:") b = input("age_b:") if a == "10" and b == "20": print(a,b) else: print("Gun.......")
python。 if....elif....else#猜年龄的游戏开始
#设置变量 user_age = 30 #用户前台输入年龄.python中前台输入的信息后台默认为str字符串类型 user_input = int(input("Please enter the age:")) #if条件判断 if user_input == user_age: print("Welcome to the user Ipuut Correct") elif user_input < user_age: print("Errors ,Please enter age.","正确的年龄是:",user_age) else: print("idiot")
1.6.2 Shell。 if....else语句
#注意:Shell中变量后不能加空格.进行对比时前后必须有空格且需要写在[]中.then结束语不能直接跟在[]后.需要换行写.如下 #!/bin/bash a=10 b=20 if [ $a == $b ] then echo "This is a and b:"$a$b else echo "Gun...." echo "a and b:"$a$b fi
1.7 for循环:
#简单粗暴的打印十次 #注意:循环打印数字时需要使用range for i in range(10): print("loop:", i ) #以下是循环打印字符串.先定义个列表 names = ["张三","李四","王麻子"] for name in names: print(name)
需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
for i in range(10): if i < 5: #大于5.修改下使用符号> continue #不往下走了,直接进入下一次loop print("loop:", i )
1.8 while 循环:
#死循环.一直打印并显示打印次数 count = 0 while True: print("天涯何处无芳草,何必单恋一只鸟...",count) count += 1
需求一:循环到100次的时候就退出
count = 0 while True: print("天涯何处无芳草,何必单恋一只鸟...",count) count +=1 if count == 100: print("我要变成花心大罗卜..") break
1.9 数据运算:
数据运算分为七大类分别是:算数运算、比较运算、赋值运算、逻辑运算、成员运算、身份运算、位运算和运算符优先级
算数运算:
符号 | 描述 | 实例 |
+ | 加-两个对象相加 | a + b 输出结果30 |
- | 减-两数相减 | a - b 输出结果-10 |
* | 乘-两个数相成 | a * b 输出结果200 |
/ | 除-两个数相除 | a / b 输出结果0.5 |
% | 取模-返回除法的余数 | b % a输出结果0 |
** | 幂-返回a的y次幂 | a**b为10的20次方.输出结果100000000000000000000 |
// | 取整除-返回商的整数部分 | 9//4结果输出2 9.0//4.0 结果输出2.0 |
比较运算:
符号 | 描述 | 实例 |
== | 等于-比较两个数是否相等 | a == b 返回False |
!= | 不等于-比较两个数是否不相等 | a != b 返回True |
<> | 不等于-比较两个数是否不相等 | a <> b 返回True |
> | 大于-返回a是否大于b | a > b 返回False |
< | 小于-返回a是否小于b. 返回0表示真1表示假.与False和True等价 | a < b 返回 True |
>= | 大于等于-返回a是否大于等于b | a >= b 返回False |
<= | 小于等于-返回a是否小于等于b | a <= b 返回 True |
赋值运算:
符号 | 描述 | 实例 |
= | 简单的赋值运算符 | c = a+b 将a+b的值赋给c |
+= | 加法赋值运算符 | c += a 等于c = c + a |
-= | 减法赋值运算符 | c -= a 等于c = c - a |
*= | 乘法赋值运算符 | c *= a 等于c = c * a |
/= | 除法赋值运算符 | c /= a 等于c = c / a |
%= | 取模赋值运算符 | c %= a 等于c = c % a |
**= | 幂赋值运算符 | c **= a 等于c = c ** a |
//= | 取整除赋值运算符 | c //= a 等于c = c // a |
逻辑运算:
符号 | 描述 | 实例 |
and | 布尔"与"-如果x为False,x and y返回False.否则它返回y的计算 | (a and b).返回True |
or | 布尔"与"-如果x是True,它返回True,否则它返回y的计算值 | (a or b).返回True |
not | 布尔"与"-如果x为True,返回False,如果x为False,它返回True | not (a and b)返回False |
成员运算:
符号 | 描述 | 实例 |
in | 在指定的序列中找到值返回True.否则False | x在y序列中.如果x在y序列中返回True |
not in | 在指定的序列中没有找到值返回True.否则False | x不在y序列中.如果x不在y序列中返回True |
身份运算:
符号 | 描述 | 实例 |
is | 判断两个标识符是不是引用同一个对象 | x is y.如果id(x)等于id(y) is返回结果1 |
is not | 判断两个标识符是不是引用自不同对象 | x is not y.如果id(x)不等于id(y).is not返回结果1 |
位运算:
符号 | 描述 | 实例 |
& | 按位与运算符 | (a & b)输出结果: 二进制解释:0000 1100 |
| | 按位或运算符 | (a | b)输出结果61: 二进制解释:0011 1101 |
^ | 按位异或运算符 | (a^b)输出结果49: 二进制解释:0011 0001 |
~ | 按位取反运算符 | (~a) 输出结果-61: 二进制解释:1100 0011 |
<< | 左移动运算符 | a << 2输出结果240: 二进制解释:1111 0000 |
>> | 右移动运算符 | a >> 2输出结果15: 二进制解释:0000 1111 |
运算符优先级:
符号 | 描述 |
** | 指数(最高优先级) |
~ + - | 按位翻转.一元加号和减号(最后两个的方法名为[email protected]和[email protected]) |
* / % // | 乘 除 取模和取整除 |
+ - | 加法减法 |
>><< | 左移和右移运算符 |
& | 位‘AND‘ |
^ | | 位运算符 |
<=<>>= | 比较运算符 |
<>==!= | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |