欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

三.基本数据类型,输入输出,基本运算符

程序员文章站 2022-04-01 20:34:35
...

一.基本数据类型

(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)