day03变量、输入、输出学习
一、变量
变量是实际存在的数据或者说是存储器中存储数据的一块内存空间(可以通过id(变量名) 来查看变量指向的内存空间地址),变量的值可以被读取和修改,变量只是是表示值的名称。 python 中的变量不需要申明,但变量在使用前必须赋值,只有赋值以后变量才会被创建。
变量的命名:
命名硬性规则:
在Python中,名称( 标识符) 只能由字母、数字和下划线( _)构成,且不能以数字打头。
PEP8 提倡规则:
变量、应该使用小写字母来拼写,如果有多个单词就使用下划线进行连接。
变量赋值
赋值语句举例:
y = 2 + 2
x = 2
a, b, c, d, e = 1, 3.14, True, 2 + 3j, 'hello'
print(y, x,a, b, c, d, e)
#输出 4 2 1 3.14 True (2+3j) hello
变量的删除
当不需要使用某个变量时候可以使用del 语句来删除变量
举例说明:
y = 2 + 2
x = 2
a, b, c, d, e = 1, 3.14, True, 2 + 3j, 'hello'
print(y, x, a, b, c, d, e)
del y, a
print(a)
print(y)
输出结果:
Traceback (most recent call last):
File "D:\python_projects\day03.py", line 24, in <module>
print(a)
NameError: name 'a' is not defined
4 2 1 3.14 True (2+3j) hello
变量的数据类型
(所谓变量的数据类型是指变量指向的内存中对象的类型)
在python3中所有的内置数据类型按类型分可以分为分为不可变数据类型和可变数据类型两种
不可变数据类型
number(数字)
int、float、bool、complex(复数)
注意bool 在python3中bool 是 int 的子类,True 和 False 可以和数字相加, True1、False0 会返回 True
string(字符串)
tuple(元组)
可变数据类型
list(列表)、set(集合)、dict(字典)
变量的数据类型判断
方式1:type():
type()函数:用于查询变量所指的对象类型
type(object) -> the object's type
使用举例:
a, b, c, d, e = 1, 3.14, True, 2 + 3j, 'hello'
print(type(a), type(b), type(c), type(d), type(e))
#输出结果<class 'int'> <class 'float'> <class 'bool'> <class 'complex'> <class 'str'>
方式2:isinstance()
isinstance()函数:用于判断变量是否对应的数据类型:
使用举例:isinstance(变量,数据类型)
a, b, c, d, e = 1, 3.14, True, 2 + 3j, 'hello'
print('a is instance int:', isinstance(a, int))
print('a is instance float:', isinstance(a, float))
print('b is instance int:', isinstance(b, int))
print('b is instance float:', isinstance(b, float))
print('c is instance bool:', isinstance(c, bool))
print('d is instance complex:', isinstance(d, complex))
print('e is instance str:', isinstance(e, str))
输出结果:
a is instance int: True
a is instance float: False
b is instance int: False
b is instance float: True
c is instance bool: True
d is instance complex: True
e is instance str: True
数据类型的类型转换
我们可以使用Python中内置的函数对变量类型进行转换,常用的类型转换函数如下:
int()
:将一个数值或字符串转换成整数,可以指定进制。float()
:将一个字符串转换成浮点数。str()
:将指定的对象转换成字符串形式,可以指定编码。chr()
:将整数转换成该编码对应的字符串(一个字符)。ord()
:将字符串(一个字符)转换成对应的编码(整数)。list()
:将一个可迭代的对象转换成list。tuple()
:将一个可迭代对象转换成tuple 。dict()
:将一个可迭代对象转换成dict。
数据类型常用运算符
运算符 | 描述 |
---|---|
[] [:] | 下标,切片 |
** | 指数 |
~ | 按位取反 |
* / % // | 乘,除,模,整除 |
+ - | 加,减 |
>> << | 右移,左移 |
& | 按位与 |
^ | | 按位异或,按位或 |
<= < > >= | 小于等于,小于,大于,大于等于 |
== != | 等于,不等于 |
is is not | 用于判断两个对象的内存地址是否一致——是否对同一个对象的引用。 |
in not in | 成员运算符,用于判断值是否在可迭代对象中 |
not or and | 逻辑运算符 |
= += -= *= /= %= //= **= &= ` | = ^=` `>>=` `<<=` |
运算符简单使用:
flag0 = 1 == 1 # 赋值运算符优先级最低
flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2 # 短路处理,左边为假 and右边表达式不执行
flag4 = flag1 or flag2 # or 也有短路处理,左边为真 or右边表达式不执行
flag5 = 1 != 2
flag6 = not (1 != 2) # 取反操作
flag7 = 'p' in 'python'
flag8 = 'a' not in 'python'
flag9 = not 0 # 0 为假
flag10 = not None # None为假
print(
f'flag0:{flag0},flag1:{flag1},flag2:{flag2},flag3:{flag3},'
f'flag4:{flag4},flag5:{flag5},flag6:{flag6}'
f',flag7:{flag7},flag8:{flag8},flag9:{flag9},flag10:{flag10}')
输出结果:
flag0:True,flag1:True,flag2:False,flag3:False,
flag4:True,flag5:True,flag6:False,flag7:True,
flag8:True,flag9:True,flag10:True
二、input()输入
我们查看input函数的文档发现input 函数主要是【Read a string from standard input.】,无论我们输入什么,输出都是字符串。
def input(*args, **kwargs): # real signature unknown
"""
Read a string from standard input. The trailing newline is stripped.
The prompt string, if given, is printed to standard output without a
trailing newline before reading input.
If the user hits EOF (*nix: Ctrl-D, Windows: Ctrl-Z+Return), raise EOFError.
On *nix systems, readline is used if available.
"""
pass
# input()输入可以接受任意参数,我们输入的值可以是任意类型
a = input("please input:")
print(a) # 输入 2 输出2
b = input("please input:")
print(b) # 输入1.22输出1.22
c = input("please input:")
print(c) # 输入 hello 输出hello
d = input("please input:") # 输入[1,2,3]
print(d) #输出[1,2,3]
name = 'python'
e = input("please input " + name + ":age")
print(e) #输出 please input python:age
我们可以通过上面的type函数验证我们上面的内容
print("a:", type(a)) #输出<class 'str'>
print("b:", type(b)) #输出<class 'str'>
print("c:", type(c)) #输出<class 'str'>
print("d:", type(d)) #输出<class 'str'>
三、print()输出
print函数定义
def print(self, *args, sep=' ', end='\n', file=None):
print使用
# print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
# 参数sep , end
print('abc') # 直接输出abc
print('a', 'b', 'c') # 接受多个字符串,用逗号“,”隔开,就可以连成一串输出
print('a', 'b', 'c', sep='#') # 通过sep 指定特定分割符,默认是空格分隔符
print('a', 'b', 'c', end='TTT') # 指定输出结尾符号,默认是换行符输出
# 参数file 与flush 文件流使用
f = open('test.txt', 'w')
print('hello python', file=f) #输出到test.txt文件中
f.close()
# flush 该参数主要是刷新, 默认False,不刷新,Ture时刷新
# 正常情况下print到f中的内容先从到内存中,当文件对象关闭时才把内容输出到
# 当flush=True时它会立即把内容刷新存到 test.txt 中
print()输出
方式1:占位符输出
在使用print
函数输出时,也可以对字符串内容进行格式化处理,用变量替换print
函数中的字符串占位符位置
常用占位符:
-
%s,字符串占位符
-
%d,整数(int)占位符,也可以表示浮点数float(只取整数部分)
-
%f,浮点数(float)占位符,也可以表示整数(int),都是默认为保留小数点后6位
占位符输出示例:
s = 'hello'
name = '小明'
age = 10
Pi = 3.1415926000
print('please say %s' % s)
print('%s的年龄是:%d' % (name, age))
print('pi:%f' % Pi) # 默认小数点后6位,(最后一位四舍五入)
print('pi:%d' % Pi) # 取浮点数的整数部分
print('pi:%.f' % Pi) # 取浮点数的整数部分
print('pi:%.8f' % Pi) # 指定小数位数8位
print('pi:%12f' % Pi) # 输出数字总位数为10位,小数点也占一位。不够时左侧补空格。
输出结果:
please say hello
小明的年龄是:10
pi:3.141593
pi:3
pi:3
pi:3.14159260
pi: 3.141593
方式2:format格式化输出
一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能
注意python 2.6以后才支持
format输出示例:
s = 'hello'
name = '小明'
age = 10
Pi = 3.1415926000
print('please say {}'.format(s))
print('{}的年龄是:{}'.format(name,age))
print('{1}的年龄是:{0}'.format(name,age)) #通过指定位置编号操作,顺序从0开始
print('pi:{:.6f}'.format(Pi)) # 默认小数点后6位,(最后一位四舍五入)
print('pi:{:.0f}'.format(Pi)) # 取浮点数的整数部分
print('pi:{:.8f}'.format(Pi)) # 指定小数位数8位
输出结果:
please say hello
小明的年龄是:10
10的年龄是:小明
pi:3.141593
pi:3
pi:3.14159260
方式3:f-String格式化输出
变量名直接做参数。s输出
注意:python3.6及之后版本才有。
f-string输出示例:
s = 'hello'
name = '小明'
age = 10
Pi = 3.1415926000
print(f'please say {s}')
print(f'{name}的年龄是:{age}')
print(f'pi:{Pi}') # 默认小数点后6位
print(f'1+2={1 + 2}') # 跟直接的数值运算
print(f'pi:{Pi:.0f}') # 取浮点数的整数部分
print(f'pi:{Pi:.8f}') # 指定小数位数8位
print(f'pi:{Pi:.4f}') # 指定小数位数4位(最后一位四舍五入)
输出结果:
please say hello
小明的年龄是:10
pi:3.1415926
1+2=3
pi:3
pi:3.14159260
pi:3.1416
四、练习:
牛客网01输入输出、02类型转换