Python功能:
- 爬虫
- 大数据人工智能
- 自动化运维,自动化测试
优点:开发效率高,简介易懂,缺点:运行效率比较慢
python2 和 python3的区别
1)python2 和 python3 语法不同
-
python2
[root@localhost mnt]# vim test.py
[root@localhost mnt]# python test.py
hello world
-
python3
[root@localhost mnt]# python3.6 test.py File "test.py", line 1 print 'hello world' ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print('hello world')?
[root@localhost mnt]# vim test.py #纠正语法错误后再次编译
[root@localhost mnt]# python3.6 test.py
hello world
2) 默认使用的字符级别不同
-
Python2
[root@localhost mnt]# vim test.py
[root@localhost mnt]# python test.py
File “test.py”, line 1
SyntaxError: Non-ASCII character ‘\xe4’ in file test.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
#coding:utf-8 #指定使用utf-8字符
print ‘你好’
[root@localhost mnt]# vim test.py
[root@localhost mnt]# python test.py
你好
-
python3 默认使用utf-8字符
<1>
[root@localhost mnt]# python3.6 test.py ###语法错误
File “test.py”, line 2
print ‘你好’
^
SyntaxError: Missing parentheses in call to ‘print’. Did you mean print(‘你好’)?
<2>#coding:utf-8 #纠正语法错误
print(‘你好’)
[root@localhost mnt]# vim test.py
[root@localhost mnt]# python3.6 test.py
你好
<3>print(‘你好’) #删除第一行的指定字符
[root@localhost mnt]# vim test.py
[root@localhost mnt]# python3.6 test.py
你好
3 ) 注释的写法
注释:方便使用者阅读,方便二次开发,描述代码的功能
写法:
# 这是注释1
print('hello world') #这是注释2
print('你好')
"""
这是一个
多行注释3
"""
[root@localhost mnt]# vim test.py
[root@localhost mnt]# python3.6 test.py
hello world
你好
4) 进入编译环境 python2 -----> python
pythn3 -----> python3.6
5) python2 和 python3.6的区别
<1>python2里input只能接收整型
[root@localhost mnt]# python
Python 2.7.5 (default, Feb 11 2014, 07:46:25)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> input('Num:')
Num:12
12
>>> input('Num:')
Num:a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'a' is not defined
<2>python2raw_input接收字符串类型
>>> raw_input('Num:')
Num:12
'12'
>>> raw_input('Num:')
Num:a
'a'
>>>
<3>3里没有raw方法,input接收所有
[root@localhost ~]# python3.6
Python 3.6.6 (default, Mar 16 2019, 15:57:32)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> input('Num:')
Num:12
'12'
>>> input('Num:')
Num:a
'a'
<4>python2中查看帮助
>>> help(input)
>>> help(raw_input)
查看帮助,对比两者不同,按q退出
6) 强制转换字符类型
import 导入包
函数.方法
>>> import getpass
>>> num = getpass.getpass('输入密码:')
输入密码:
>>> num
'123'
getpass输入密码不会回显
7) type()可以查看括号中内容的类型
<1>python3
>>> age = input('请输入年龄:')
请输入年龄:18
>>> type(age)
<class 'str'>
>>> age > 19
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'str' and 'int'
>>>
<2>python2
>>> age = raw_input('请输入年龄:')
请输入年龄:18
>>> type(age)
<type 'str'>
>>> age > 19
True
>>> age
'18'
>>> age > 19
True
>>> age = input('请输入年龄:')
请输入年龄:18
>>> age
18
>>> type(age)
<type 'int'>
>>> age > 19
False
>>>
2可以直接比较
<3>3需要强制转换字符类型
转换之后不会对字符串重新赋值,用转换后的直接比较
8) 输入与输出
>>> name = 'westos'
>>> age = 11
>>> print('%s的年龄为%d' %(name,age))
westos的年龄为11
>>> name = 'redhat'
>>> print('%s的年龄为%d' %(name,age))
redhat的年龄为11
>>> age = '18' ##这里的18是一个字符串
>>> print('%s的年龄为%d' %(name,age)) ##%d无法输出
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not str
>>> print('%s的年龄为%s' %(name,age)) ##改成%s后可以输出
redhat的年龄为18
ipython第三方工具,会有颜色显示
-
%s字符串
-
%d整型 占为符,写几个占用几个
-
%f浮点型,小数 默认保留6位 %.2f 保留两位 %.3f 保留3位
>>> money = 8888.123123123 >>> print('%s本月的工资为%f' %(name,money)) redhat本月的工资为8888.123123 >>> money = 8000 >>> print('%s本月的工资为%f' %(name,money)) ##默认保留6位 redhat本月的工资为8000.000000 >>> >>> print('%s本月的工资为%.2f' %(name,money)) ##保留两位 redhat本月的工资为8000.00 >>> print('%s本月的工资为%.3f' %(name,money))##保留三位 redhat本月的工资为8000.000 >>> print('%s本月的工资为%.1f' %(name,money))##保留一位 redhat本月的工资为8000.0
9) 格式化输出
注意代码的可移植性,重新定以一个变量即可再次使用>>> sid = 1 >>> print('%s的学号为250616020%d' %(name,sid)) redhat的学号为2506160201 >>> print('%s的学号为250616020%.2d' %(name,sid)) redhat的学号为25061602001 >>> print('%s的学号为250616020%.3d' %(name,sid)) redhat的学号为250616020001
10)百分比表示
输出百分比
%.2f%%表示百分比
>>> scale = 0.1
>>> print('数据的比例是%.2f\%' %(scale * 100) )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: incomplete format
>>> print('数据的比例是%.2f%' %(scale * 100) )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: incomplete format
>>> print('数据的比例是%.2f%%' %(scale * 100) )
数据的比例是10.00%
>>>
python3中没有长整型
>>> a = 123456123456123456123456 字符串再长也只是int型
>>> type(a)
<class 'int'>
>>>
python2中
>>> a = 123456789876543212345678987654321
>>> type(a)
<type 'long'>
str:表示是一个字符串类型
int:表示是一整型
bool:非0即为真(数字),不为空也是真 表示布尔型 真:ture 加false
float:小数类型,浮点数
>>> name = '闫璟玥'
>>> print(name)
闫璟玥
>>> type(name)
<class 'str'>
>>> age = 18
>>> type(age)
<class 'int'>
>>> gender = True
>>> type(gender)
<class 'bool'>
>>> bool(2)
True
>>> bool(0)
False
>>> bool(a)
True
>>> bool()
False
>>>
>>> height = 162.0
>>> type(height)
<class 'float'>
定义变量的时候 只有变量第一次出现时对这个变量是定义,后面的都是看到这个变量就直接使用
定义变量是在内存中申请了一块内存给他
>>> price = 0.5
>>> weight = 2.5
>>> money = price * weight
>>> print(money)
1.25
>>>
>>> money = money - 1
>>> print(money)
0.25
11) 删除时用del
>>> a = 10
>>> a
10
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>>
练习:计算一个人的平均成绩
name = input('请输入姓名:')
Chinese = float(input('请输入语文成绩:'))
Math = float(input('请输入数学成绩:'))
English = float(input('请输入英语成绩:'))
sumscore = Chinese + Math + English
avgscore = sumscore/3
print('%s的平均成绩为%.2f' %(name,avgscore))
print('语文成绩占的百分比为%.2f%%' %(Chinese/sumscore * 100))
python中的每一个缩进都是4个