Python
一、什么是python
**Python究竟是什么:**所有的语言,都是将字符翻译成机器码,然后交给操作系统执行的过程。编译器与解释器的区别。Python 是一个解释器,用来将编写的代码字符解释并且运行,最终获取运行结果返回(实际上python解释器可以理解为一个虚拟机环境)。编译器编译一个可以独立运行的文件,交给操作系统运行并获取结果。
二、python解释器运行步骤
-
先启动python3解释器
-
python3解释器就像一个文本编辑器一样将文件内容xx.py从硬盘读到内存
-
python3解释器解释执行文件代码
只有第三阶段才识别Python的语法
三、编写一个小程序
#!/usr/bin/env python3 # 指定环境变量为Python3
# -*- coding: utf-8 -*- # 编码格式为utf-8, 要知道的是 python2不指定ascill码
#
print("hello world") # 直接打印直接为hello world
3.1、编码格式
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存…
3.2、注释
单行注视:# 被注释内容
# hello 不会被程序执行
多行注释:""" 被注释内容 """
"""
随便了,这里被注释了
随便了,这里被注释了
"""
四、变量
4.1、变量规则
-
变量名只能是 字母、数字或下划线的任意组合
-
变量名的第一个字符不能是数字
-
关键字不能声明为变量名
import keyword print(keyword.kwlist) ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
4.2、变量风格
- 驼峰体: AbcDef
- 下划线(针对变量名的命令风格, 推荐使用下划线): abc_def
- 在python中没有从语法意义上强制性定义常量
- 如果在python中需要定义常量, 那应该将变量改为全大写: 如ABC_DEF=“xiong” 只是语法上的规范
4.3、变量赋值及引用
变量:指代一块内存地址的标签,变量的名字就是标识符 如
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
name = "xiong"
age = 111
# id: 查看变量在内存当中的位置
print(id(name)) # 2216937547008
print(id(age)) # 140731486072912
name2 =name # 2574532270208 # 将name2 变量引用name, 只是修改了内存地址的标签
name = "hello"
print(id(name)) # 2574532270208 # 重新赋值之后 地址就会重新发生改变
print(id(name2)) # 2574532240640 # 而 name2 依旧还是原先的内存
五、判断及循环语句
5.1、判断
- 判断值是否相等 == 如 a=1 a==b 结果为true
- 判断id是否相等 is 如 a=1 b=1 a is b 在pycharm中为true, 交互下为false
5.2、if
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
name = "xiong"
if name == "hello": # 判断定义的名称是否相等
print("yep")
else:
print("不相等")
# 通过三元表达式写法
resule = "yep" if name == "hello" else "不相等"
print(resule)
5.3、input
name = input("请输入一个字符串: ") # 通过控制台输入变量来进行判断
resule = "相等" if name == "xiong" else "不相等"
print(resule)
demo、用户登陆验证
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
name = input("请输入用户名: ")
pwd = input("请输入密码: ")
if name == "xiong" and pwd == "123":
print("验证通过")
else:
print("登陆失败")
# 三元表达式,前期学可先忽略
result = "验证通过" if name == "xiong" and pwd == "123" else "验证失败"
print(result)
5.4、while
5.4.1、基本循环
while 条件:
# 循环体
# 如果条件为真,那么循环体则执行
# 如果条件为假,那么循环体不执行
5.4.2、break用于退出所有循环
while True:
print "123"
break
print "456"
5.4.3、continue用于退出当前循环,继续下一次循环
while True:
print "123"
continue
print "456"
demo
# 用户登陆
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
while True:
name = input("请输入姓名: ")
pwd = input("请输入密码: ")
if name == "xiong":
if pwd == "123":
print("验证通过")
break
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
"""
# 1、使用while循环输入 1 2 3 4 5 6 8 9 10
num = 1
while True:
if num >= 11: break
print(num, end="\t ")
num += 1
# 2、求1-100的所有数的和
num, count_num = 0, 0
while num <= 100:
count_num += num
num += 1
print(count_num)
# 3、输出 1-100 内的所有奇数
num, count_num = 0, 0
while num <= 100:
if num % 2 == 1:
count_num += num
num += 1
print(count_num)
# 4、输出 1-100 内的所有偶数
num, count_num = 0, 0
while num <= 100:
if num % 2 == 0:
count_num+=num
num+=1
print(count_num)
# 5、求1-2+3-4+5 ... 99的所有数的和
num, count_num = 0, 0
while num <= 99:
if num % 2 == 0:
count_num += num
else:
count_num -= num
num += 1
print(count_num)
num, count_num = 0, 0
while num <= 99:
count_num = count_num+num if num % 2 == 0 else count_num - num
num += 1
print(count_num)
# 6、用户登陆(三次机会重试)
count_login = 0
while True:
if count_login >= 3: break
name = input("请输入用户名: ")
pwd = input("请输入密码: ")
if name == "xiong" and pwd == "123":
print("验证通过")
break
count_login += 1
print("验证失败 {
} 次".format(count_login))
# 7、九九乘法表
low = 1
while low <= 9:
col = 1
while col <= low:
print("{
} * {
} = {
}".format(col, low, col*low), end="\t")
col += 1
print()
low += 1
"""
5.5、for
[enumerate用法说明][https://www.runoob.com/python/python-func-enumerate.html]
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
for i in range(1,10): # 循环从1开始到10
print(i, end="\t")
# 列表生成式
li = [i for i in range(1,10)]
print(li)
for i,u in enumerate(li): # 枚举循环, 添加下标 enumerate(li,1) 从1开始
print(i,u)
demo
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
"""
# 1、使用for循环输入 1 2 3 4 5 6 8 9 10
for i in range(1, 10):
print(i, end="\t")
# 2、求1-100的所有数的和
count_num = 0
for num in range(1, 101):
count_num += num
print(count_num)
# 3、输出 1-100 内的所有奇数
count_num = 0
for num in range(1, 101):
if num % 2 == 1:
count_num += num
print(count_num)
# 4、输出 1-100 内的所有偶数
count_num = 0
for num in range(1, 101):
if num % 2 == 0:
count_num += num
print(count_num)
# 5、求1-2+3-4+5 ... 99的所有数的和
count_num = 0
for num in range(1, 101):
count_num = count_num - num if num % 2 == 0 else count_num + num
print(count_num)
# 九九乘法表
num = 0
while num <= 9:
for i in range(0, num):
print("{
} * {
} = {
}".format(i+1, num, (i+1) * num), end="\t")
print()
num += 1
"""
六、运算符
6.1、算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2 |
% | 取模 - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a**b 为2的10次方, 输出结果 1024 |
// | 取整除 - 返回商的整数部分(向下取整) | >>> 9//2 4 >>> -9//2 -5 |
6.2、比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true. |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。 | (a < b) 返回 true。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 true。 |
6.3、赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 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 |
6.4、逻辑运算符
运算符 | 描述 | 实例 |
---|---|---|
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 ) 返回true |
将列表拼成一个字符串
xx=[1,2,3,4]
x2 = [str(i) for i in xx]
print(x2)
l3 = " ".join(x2)
print(l3, type(l3)) # ‘1 2 3 4’ <class 'str'>