python基础——基本数据类型,输入输出,运算符
一、小知识
1、什么是平台?什么是跨平台性?
平台=计算机硬件+操作系统
跨平台性:指应用程序能否在不同平台运行。
2、小整数池作用?
为了避免因创建相同的值而重复申请内存空间所带来的效率问题,从python解释器启动的那一刻开始,就会在内存中事先申请好一系列内存空间来存放好常量的整数,整数范围[-5 ~ 256],在范围内的小整数对象会被重复使用,永远不被垃圾回收机制回收。
3、什么是引用计数?什么是垃圾回收机制(简称GC)?为何要有垃圾回收机制(简称GC)?
引用计数就是变量值被变量名关联的次数。
GC是python解释器自带的一种机制,专门用来回收不可用的变量值所占的内存空间。
在程序运行过程中会申请大量的内存空间,而对于一些无用的内存空间如果不及时清理的话会导致内存使用殆尽(内存溢出),导致程序崩溃,因此管理内存是一件重要且繁杂的事情,而python解释器自带的GC把程序员从繁杂的内存管理中解放出来。
二、基本数据类型
数字类型:数字类型可以进行数学运算以及比较运算,但仅限于数字类型之间进行
1、整型int
作用:记录年龄、等级、号码等状态
定义与使用
#定义
age = 999
level = 10
qq = 383838338
#使用
res=age * 1
print(age != 10)
2、浮点型float
作用:记录薪资、身高、体重等状态
定义与使用
salary=3.3 print(salary,type(salary)) #3.3 <class 'float'> print(3.3 + 1) #4.3 print(3.3 >= 1) #True print("abc" > 1) # 报错,不能混用
3、字符串str
作用:记录一些描述性的状态,比如名字、性别、消息等等
定义与使用:在双引号内或者单引号内或三引号内(''''''、"""""")定义的一组字符称之为字符串
msg1 = '一行白鹭上青天' print(msg1,type(msg1)) #一行白鹭上青天 <class 'str'> msg2=""" aaa bbbb cccc """ print(type(msg2)) #<class 'str'>
引号的嵌套
msg="my name is 'egon'"
print(msg) #my name is 'egon'
4.列表list: 索引对应值,索引从0开始
作用:按顺序存放多个值,并且能够按顺序取出来单独的一个值
定义与使用:在[]内用逗号分隔开多个任意类型的值
egon_hobbies = ["play","music","read"] print(egon_hobbies[0]) print(egon_hobbies[1]) print(egon_hobbies[2]) print(egon_hobbies[-1]) l = [111, 333.3333, "abc", [444444, 5555, 66666,["aaa","bbbb"]]] print(l[2]) print(l[3][0]) # [444444, 5555, 66666][0] print(l[3][-1]) # [444444, 5555, 66666][0] print(l[3][3][0])#"aaa"
5.字典
作用:存放多个值,用key对应值,key通常为字符串类型
定义与使用:在{}内用逗号分隔开多个key:value,其中value可以是任意类型
info={"name":"egon","age":18,"gender":"male","hobbies":["play","music"]} print(info["name"]) #egon print(info["age"]) #18 print(info["hobbies"][1]) #music
6.布尔类型
只有两个值True和False
#可以自己定义布尔值 tag=True print(tag,type(tag)) #通常是通过比较运算得到布尔值的 print(10 > 3) print("egon" == "egon")
三、输入输出
1、python3中input功能会把用户输入的任意内容都存成字符串类型
输入
#接收用户的输入 inp_name=input("请输入您的账号名>>>: ") # "egon123*" print(inp_name,type(inp_name)) #注意1: inp_age=input("请输入您的年龄>>>: ") # "18" inp_age=int(inp_age) # int会把纯数字的字符串转换成int型 print(inp_age+1) # "18"+1 #注意2: inp_pwd=input("请输入您的密码>>>: ") # "123" print(inp_pwd == 123) # "123" == 123 print(inp_pwd == "123") # "123" == "123" #注意3:无论输啥,都存成字符串 x=input(">>>: ") # "[1,2,3]" print(x,type(x))
输出
#格式化输出 print('login successfull') name=input('your name: ') age=input('your age: ') print("my name is %s my age is %s" %(name,age)) print("my name is %s" % "egon") print("my name is %s my age is %s" % ("egon", 18)) print("my name is %s my age is %s" % ("egon", [1,2,3]))
四、运算符
1、算数运算符
# 算数运算符通常用于数字类型之间进行,但是+号和*比较特殊
# +和*可以用于其他类,但是仅限于同种类型值之间进行
print(10 / 3)
print(10 // 3)#3
print(10 % 3) # 取余数,取模
print(10 ** 2)
2、比较运算符
#比较运算符通常用于数字之间进行
print(10 == 10)
print(10 == "10")
print(10 != "10") # True
#特殊1
l1=[1,'abc',18]
l2=["a",'abc',18]
l1 > l2 # 报错,对应位置的值必须是同种类型才可以
#特殊2
l1=[1,'abc',18,111,222,333]
l2=[2,'abc',18]
print(l2 > l1)
3、赋值运算符
age = 18
age += 1 # age = age + 1
print(age)
age *= 100 # age = age * 100
print(age)
4、逻辑运算符
# not: 把布尔值结果取反 print(not 10 > 3) print(not "egon" == "egon") print(not True) print(not False) # and:用来链接左右两个条件 左右两个条件同时为True,最终结果才为True print(10 > 3 and 3 == 3) print(10 > 33 and 3 == 3) print(False and True) # or:用来链接左右两个条件 左右两个条件但凡有一个结果为True,最终结果就为True print(False or True) print(True or True) print(False or False) print(10 > 33 or False) # 短路行为=》偷懒行为 10 < 3 and 1 == 1 False or 1 == 1 True or 1 == 1 #优先级:not > and > or #推荐用()区分优先级 (True and 1 == 1) or (not "egon" == "egon") or ("aaa" == "aaa" and 1 <= 3) #举例: res = True and 1 == 1 or not "egon" == "egon" or "aaa" == "aaa" and 1 <= 3 (True and 1 == 1) or not "egon" == "egon" or ("aaa" == "aaa" and 1 <= 3) print(res)