三.基本数据类型,输入输出,基本运算符
python学习第3天
一.基本数据类型
(1)数字类型
数字类型可以进行数学运算以及比较运算,但仅限于数字类型之间进行
1.整型int
作用:记录年龄,等级,号码等状态
定义与使用
age = 999
level = 10
qq = 3838338
res = age * 1
print(res) # 输出 999
print(age != 10) # 输出True
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) #报错,不能混用
(2)字符串str
作用: 记录一些描述性的状态,比如名字,性别,消息等
定义与使用:在双引号或者单引号内或三引号内(’’’’’’,"""""")定义的一组字符称之为字符串
msg = "一行白鹭上青天"
msg1 = '一行白鹭上青天'
msg2 = '行一白鹭上青天'
msg3 = '行 1&*一白鹭上青天'
msg4 = '行'
print(msg4,type(msg4)) # 输出 行 <class 'str'>
msg5 = """
aaa
bbbb
cccc
"""
print(type(msg5)) # 输出 <class 'str'>
# 引号的嵌套
msg = "my name is 'egon'"
print(msg) #输出 my name is 'egon'
gender = "male"
gender = 1
gender = 0
总结:
单引号,双引号:只是单行内容
三引号: 可以是多行内容
引号嵌套:
内层单引号,外层用双引号
内层双引号,外层用单引号
了解:字符串类型也可以进行数学运算以及比较运算,但仅限于字符串类型之间进行
数学运算: 字符串只能做 + , *
print("abc" + " " + "def") #字符串的相加是一个拼接操作,效率极低
print("abc"*10)
print("#"*50)
print('hello')
(3)列表list:索引对应值,索引从0开始
作用:按顺序存放多个值,并且能够按顺序取出来单独的一个值
定义与使用: 在[ ]内用逗号分隔开多个任意类型的值
hobbies = "play music read"
0 1 2
egon_hobbies = ["play","music","read"]
print(egon_hobbies[0]) #输出 play
print(egon_hobbies[1]) #输出 music
print(egon_hobbies[2]) #输出 read
print(egon_hobbies[-1]) #输出 read
0 1 2 3
l = [111,333.3333,"abc",[44444,5555,6666,["aaa","bbb"]]]
print(l[2]) # 输出abc
print(l[3][0]) # 输出44444
print(l[3][-1]) # 输出['aaa', 'bbb']
print(l[3][3][0]) # 输出aaa
练习题1:存放一个人信息(名字,年龄,多个爱好)
egon_info = ["egon",18,["play","movie"]]
练习题2:存放多个人信息(名字,年龄,多个爱好)
info = [
["egon1", 18, ["play", "movie"]],
["egon2", 19, ["read"]],
]
print(info[1][2][0])
names=["egon","张三","李四"]
salaries=[1.1,2.2,3.3]
0 1 2 3 4 5 6
info=["egon",18,"male",19,10,11,12]
print(info[-1])
总结:列表适合存储单一属性的值
(4)字典dict
作用:存放多个值,用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
练习题:存放多个人信息(名字,年龄,多个爱好)
info = [
{
"name": "egon1",
"age": 18,
"level": 10,
"hobbies": ["play", "movie"]
},
{
"name": "egon2",
"age": 19,
"level": 11,
"hobbies": ["read"]
},
]
print(info[1]["level"]) #输出11
(5)布尔类型:只有2个值True和False
可以自己定义布尔值
tag = True
print(tag,type(tag)) #输出True <class 'bool'>
通过比较运算得到布尔值
print(10>3) # 输出True
print("egon" == "egon") #输出True
布尔值用于条件
二.输入输出
接收用户的输入
python3中input功能会把用户输入的任意内容都存成字符串类型
inp_name = input("请输入您的账号名>>>: ") # "egon123*"
print(inp_name,type(inp_name)) # 输出egon123* <class 'str'>
# 注意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 输出False
print(inp_pwd == "123") # "123" == "123 输出True
# 注意3: 无论输啥,都存成字符串
x = input(">>>: ") # "[1,2,3]"
print(x,type(x)) # 输出[1,2,3] <class 'str'>
了解(**):
1、python2中raw_input功能与python3中的input功能一模一样
2、python2中input功能,需要用户输入一个明确的数据类型,输入什么类型就存成什么类型
格式化输出
%s 字符串占位符,整型,浮点型,列表各种类型的值都可以通过此占位符来传输
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 %d" % ("egon",18))
print("my name is %s my ageis %s" % ("egon",[1,2,3]))
三.基本运算符
1.算数运算符
算数运算符通常用于数字类型之间进行,但是+号和*号比较特殊,可以用于其他类型,但是仅限于同种类型之间进行
print(10 / 3) #输出3.3333333333333335
print(10 // 3) #输出3
print(10 % 3) #输出 1
print(10 ** 2) #输出100
总结:
/ 和 // (地板除)之间的区别是, / 保留小数位,// 只保留正数,并不是四舍五入,而是直接丢掉小数位
% 是取模,也是取余,10跟3取余,除不尽,余数为1
** 是次幂,10**2就是100
了解知识()**
特殊:+ *
l1=[1,2,3]
l2=[4,5,6]
print(l1 + l2) #输出[1, 2, 3, 4, 5, 6]
print(l1*3) #输出[1, 2, 3, 1, 2, 3, 1, 2, 3]
2.比较运算符
比较运算符通常用于数字之间进行
print(10 == 10) #输出True
print(10 == "10") #输出False
print(10 != "10") #输出True
了解(*)
字符串,列表之间也可以比大小,但是一般不会这么做,仅作了解
print("abz" > "abcdef") # True
l1=[1,'abc',18]
l2=["a",'abc',18]
l1 > l2 # 报错,对应位置的值必须是同种类型才可以
l1=[1,'abc',18,111,222,333]
l2=[2,'abc',18]
print(l2 > l1)
3.赋值运算
age = 18
age += 1 # age = age + 1
print(age) #输出19
age *= 100 # age = age * 100
print(age) #输出1900
4.逻辑运算符
not: 把布尔值结果取反
print( not 10 > 3) #输出False
print(not "egon" == "egon") #输出False
print(not True) #输出False
print(not False) #输出True
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)
res = True and 1 != 1 or not "egon" == "egon" or "aaa" == "aaa" and 11 <= 3
#res=(True and 1 != 1) or not "egon" == "egon" or ("aaa" == "aaa" and 11 <= 3)
print(res)