python的输入输出及常用数据类型
# 程序: 输入(键盘)------代码(java/python)-------输出(显示屏)
#####输入######
*** python2:
- input:(只接受数值类型)
```
>>> help(input)
>>> import getpass
>>> num = getpass.getpass("请输入密码:")
请输入密码:
>>> print(num)
12345678
>>> num = input("请输入密码:")
请输入密码:westos123
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'westos123' is not defined
```
- raw_input(接收字符串类型)
```
>>> name = raw_input("请输入用户名:")
请输入用户名:westos
# 如果接收的值要进行数值比较时, 一定要转化为同种类型比较;
>>> age = raw_input("请输入年龄:")
请输入年龄:19
>>> type(age)
<type 'str'>
>>> age >19
True
>>> int(age) >19
False
```
*** python3
- input: 接收的为字符串数据类型, 没有raw_input
```
>>> num = input()
12
>>> name = input()
westos
>>> type(num)
<class 'str'>
>>> type(name)
<class 'str'>
```
########## 输出#######
```
# %s:代表字符串, %d: 整形, %f: 浮点型
>>> print("%s的年龄为%s" %(name, age))
cooffee的年龄为19
# .2f: 保留小数点后两位
>>> money = 7800.7812345660
>>> print("%s本月的公资为%f" %(name, money))
coffee本月的公资为7800.781235
>>> print("%s本月的工资为%.2f" %(name, money))
cooffee本月的工资为7800.78
#.3d: 整形总占位数, 不够的前面补0
>>> sid = 1
>>> print("%s的学号为130%d" %(name, sid))
cooffee的学号为1301
>>> print("%s的学号为130%.3d" %(name, sid))
cooffee的学号为130001
>>> sid = 10
>>> print("%s的学号为130%.3d" %(name, sid))
cooffee的学号为130010
```
#######数值类型#######
1(整形)
```
>>> aInt = 13
>>> print(aInt)
13
>>> print(type(aInt))
<type 'int'>
```
17438759847509836949587787(长整形)
```
** python2: 有长整形
>>> aLong = 125653274468735986958609585
>>> print(type(aLong))
<type 'long'>
>>> bLong = 1L
>>> print(type(bLong))
<type 'long'>
**python3中: 没有长整形
>>> aInt=1
>>> type(aInt)
<class 'int'>
>>> aLong = 8727398274987398555567985798567777777777985769843
>>> type(aLong)
<class 'int'>
>>> bLong = 1L
File "<stdin>", line 1
bLong = 1L
^
SyntaxError: invalid syntax
```
1.23455, 12000000 , 12e6, 1.2e+7, 0.12e+8, 0.012, 1.2e-2(浮点型)
```
>>> aFloat = 1.2
>>> type(aFloat)
<type 'float'>
>>> aFloat = 12e10
>>> aFloat
120000000000.0
>>> type(aFloat)
<type 'float'>
>>> aFloat=12e-10
>>> aFloat
1.2e-09
>>> type(aFloat)
<type 'float'>
```
2i+1(复数类型)====x**2>0, x**2=-1
```
>>> aComplex = 2j+3
>>> type(aComplex)
<type 'complex'>
***查看帮助: 可以使用什么方法, 实现什么功能?
>>> help(aComplex)
>>> dir(aComplex)
['__abs__', '__add__', '__class__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__eq__', '__float__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__int__', '__le__', '__long__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', 'conjugate', 'imag', 'real']
***案例:
>>> aComplex.conjugate()
(3-2j)
>>> aComplex.imag
2.0
>>> aComplex.real
3.0
```
# 字符串数据类型
```
>>> aString = "hello"
>>> type(aString)
<type 'str'>
>>> dir(aString)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> help(aString.center)
>>> aString.center(40)
' hello '
>>> aString.center(40, '*')
'*****************hello******************'
>>> print("学生管理系统".center(50, '-'))
----------------学生管理系统----------------
>>> print("学生管理系统".center(50, '*'))
****************学生管理系统****************
```
# 数据类型的转换:
- 在python中, 所有的数据类型都可以作为内置函数,用来转换数据类型;
```
>>> str(1)
'1'
>>> int(2e-10)
0
>>> complex(2)
(2+0j)
```
# 如何删除内存中的变量?
```
>>> aFloat
1.2e-09
>>> del aFloat
>>> aFloat
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'aFloat' is not defined
```
# 布尔数据类型
bool: 只有两个值(True, False)
```
>>> bool(a)
True
>>> bool(0)
False
>>> bool(67)
True
>>> bool(67.768)
True
>>> name = "cooffee"
>>> bool(name)
True
>>> name = ""
>>> bool(name)
False
```