以下所有的实操全在redhat7.3真机上的python3中
python3脚本语言的编写格式
#coding:utf-8
python2.x:默认使用ASCII编码
python3.x:默认使用UTF-8编码
1.没有分号(编码规范 PEP8)
2.严格按照缩进的语言
print(‘hello python’)
print(‘你好 python’)
ASCII编码和UTF-8编码区别:
Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。
解决方法为只要在文件开头加入 # -- coding: UTF-8 -- 或者 # coding=utf-8 就行了
但是如果是第二种需要注意:# coding=utf-8 的 = 号两边不要空格。
注意:Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。
注意:如果你使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8,否则会出现类似以下错误信息:
python中的数据类型
变量就是对内存地址空间的一个引用
a = 1
“”"
hello python
“”"
整型
>>> a = 1
>>> print(a)
1
#查看变量的类型
>>> type(a)
<class 'int'>
浮点型
>>> b = 1.2
>>> print(b)
1.2
>>> type(b)
<class 'float'>
字符串型
>>> c = westos #字符串类型需要用引号
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'westos' is not defined
>>> c = 'westos'
>>> print(c)
westos
>>> c = "what's"
>>> print(c)
what's
>>> c = 'what's' 字符串用单引号写的时候,如果有特殊字符需要使用转义字符,否则报错File "<stdin>", line 1c = 'what's'^
SyntaxError: invalid syntax
>>> c = 'what\'s'
>>> print(c)
what's
>>> type(c)
<class 'str'>
bool型(只有两个值:True False 非0即真)
>>> a = 1
>>> bool(a)
True
>>> bool(0)
False
>>> bool('')
False
>>> bool(' ')#这是一个空格键,不是空的;
True
>>> bool('redhat')
True
数据类型之间的转换
>>> a = 1
>>> type(a)
<class 'int'>
>>> float(a) #这个只是表面是将a转为了浮点型
1.0
>>> type(a) #实际上还是整型
<class 'int'>
>>> b = float(a)
>>> b
1.0
>>> b = 2.0
>>> int(b)
2
>>> c = 'redhat' #这是一个字符串型,不能转换成整型,但是数字字符串可以;
>>> int(c)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'redhat'
>>> b = 123 #整型可以转换成字符串型;
>>> str(b)
'123'
>>> c = '123'
>>> int(c)
123
>>> a
1
>>> b
123
>>> c
'123'
在内存中删除一个变量
>>> del a
>>> a
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> del b
>>> b
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
输入输出
#python3.x
#input():接收任意数据类型
#python3.x中没有raw_input()
>>> input('Num:')
Num:2
'2'
>>> input('Num:')
Num:abc
'abc'
>>> input('Passwd:')
Passwd:123
'123'# 输入内容不回显
>>> import getpass
>>> num = getpass.getpass('请输入密码:')
请输入密码:
>>> print(num)
123
#
#python2.x
#input():只支持正确的数值类型
#raw_input():数值和字符串
>>> input('Num:')
Num:2
2
>>> input('Num:')
Num:1.2
1.2
>>> input('Num:')
Num:redhat
Traceback (most recent call last):
File "<stdin>", line 1, in <module>File "<string>", line 1, in <module>
NameError: name 'redhat' is not defined
>>> raw_input('Num:')
Num:2'2'>>> raw_input('Num:')
Num:1,2
'1,2'
>>> raw_input('Num:')
Num:redhat
'redhat'
>>>
#
#
#
#如果接收到的数值要进行比较的时候,一定要转换为同一种类型
>>> age = input('age:')
age:19 #默认是字符串,因此需要进行数据类型的转换;
>>> age
'19'
>>> age > 18
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'str' and 'int'
>>> age = int(age) #将字符串转化成整型
>>> age
19
>>> age > 18
True
>>> age = int(input('age:'))
age:18
>>> age
18
deployment.extensions/httpd rolled back
格式化输出
#%s:代表字符串 %d:整型
>>> name = 'westos'
>>> name'westos'>>> age = 12
>>> print('%s的年龄是%d' %(name,age))
westos的年龄是12
>>> age = 18
>>> print('%s的年龄是%d' %(name,age))
westos的年龄是18
>>> age = '19'
>>> print('%s的年龄是%d' %(name,age))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not str
>>> age = 19.5
>>> print('%s的年龄是%d' %(name,age))
westos的年龄是19
#浮点型 %f默认是6位
>>> money=23121312.32314432
>>> name = 'Tom'
>>> print('%s的工资为%f' %(name,money))
Tom的工资为23121312.323144
>>> money=60000
>>> print('%s的工资为%f' %(name,money))
Tom的工资为60000.000000
>>> money=60000.99
>>> print('%s的工资为%f' %(name,money))
Tom的工资为60000.990000
>>> print('%s的工资为%.2f' %(name,money))
Tom的工资为60000.99
>>> money=60000
>>> print('%s的工资为%.3f' %(name,money))
Tom的工资为60000.000
#
整数的占位:不够的位数 前面补0
>>> sid = 1
>>> name = 'lily'
>>> print('%s的学号为000%d' %(name,sid))lily的学号为0001
>>> sid = 2
>>> print('%s的学号为000%d' %(name,sid))
lily的学号为0002
>>> sid = 10
>>> print('%s的学号为000%d' %(name,sid))
lily的学号为00010
>>> print('%s的学号为%.5d' %(name,sid))
lily的学号为00010
>>> sid = 1
>>> print('%s的学号为%.5d' %(name,sid))
lily的学号为00001
>>> sid = 20
>>> sid = 100
>>> print('%s的学号为%.5d' %(name,sid))
lily的学号为00100
百分号的实现
>>> scale = 0.1
>>> print('数据的比例是:%.2f' %(scale))数据的比例是:0.10
>>> print('数据的比例是:%.2f' %(scale * 100))
数据的比例是:10.00
>>> print('数据的比例是:%.2f%' %(scale * 100))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: incomplete format
>>> print('数据的比例是:%.2f%%' %(scale * 100))
数据的比例是:10.00%
1、练习:
#求平均成绩(python3解释器)
#- 输入学生姓名;
#- 依次输入学生的三门科目成绩;(语文 数学 英语)
#- 计算该学生的平均成绩, 并打印;
#- 平均成绩保留一位小数点;
#- 计算该学生语文成绩占总成绩的百分之多少?并打印。eg: 78%;
python2.x #必须是除数或被除数里面有一个是浮点型,在整除时才会出现小数;
>>> 5/2
2
>>> 100/300
0
>>> 5.0/2
2.5
>>> 100/300.0
0.3333333333333333
python3.x #不需要考虑
>>> 5/2
2.5
>>> 100/300
0.3333333333333333
>>>
取余
>>> 5%2
1
取整
>>> 5//2
2>>> a = 1
>>> a = a+1
>>> a
2
>>> a += 1
>>> a
3
逻辑运算符号(and 、or)
and
1 and 2
两个条件同时满足 就返回True
只要有一个条件不满足,就返回False
or
1 or 2
两个条件只要满足一个 就返回True
两个条件都不满足,就返回False
Python3.x和Python2.x的区别
python3:
#input():接收任意数据类型
#python3.x中没有raw_input()
#不考虑除数或被除数里面有一个是浮点型,
python2:
#input():只支持正确的数值类型
#raw_input():数值和字符串,不能直接识别字符串;
#必须是除数或被除数里面有一个是浮点型,在整除时才会出现小数;否则就成了整除;