python-基本数据类型
一、什么是数据? 为何要与多种类型数据?
#数据即变量的值 如 age=18 ,18 则是我们保存的数据 #变量是来反映、保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同的类型的数据去标识
了解:python是一门解释型的强类型动态语言
二、数字
#int整形 定义:age=10 #age=int(10) 用于标识: 年龄 等级 身份证号 QQ号 个数 #float 浮点型 定义: salary=3.1 #salary=float(3.1) 用于标识: 工资 身高 体重
其他数据类型(了解部分)
三、字符串
#在python中,加了引号的字符就是字符串类型,python并没有字符串类型 定义: name = 'egon' #name=str('egon') 用于标识: 描述性的内容 姓名 形变 国籍 种族
#单引号、双引号、多引号区别, 只有在下面这种情况下 考虑单双引号混合使用 msg = "My name is Egon , I'm 18 years old!" #多引号只有在有多行字符串的时候使用。 mag = ''' 床前明月光, 疑似地上霜, 举头望明月, 低头思故乡。 ''' print(msg)
#数字可以进行加减乘除等运算,字符串只能进行相加 和相乘运算。 >>>name = 'egon' >>>age = '18' >>>name+age #相加其实就是简单的拼接 'agon18' >>>name*5 'egonegonegonegonegon' #注意1:字符串相加效率不高 字符串1+字符串3,并不会在字符串1的基础上加上字符串2,而是申请一个新的内存空间存入字符串1和字符串3,相当字符串1与字符串3的空间被复制了一次 #注意2:只能字符串加字符串,不能字符串加其他类型。字符串
四、列表
#在[]内用逗号分隔,可以存放n个类型的值。 定义: students=['egon','alex','zhangwen',] #students=list(['egon','alex','zhangwen',]) 用于标识:存储多个值得情况,比如一个人的喜好。
#存放多个学生的信息: 姓名,年龄,爱好 >>>students_info=[['egon',18,['play,]],['alex,18,['play','sleep']]] >>>students_info[0][2][0] #取出第一个学生的第一个爱好 'play'
五、字典
#为何还要用字典? 存放一个人的信息:姓名,性别,年龄 多个值,既然存多个值,为什么不用刚学的列表呢 >>>info=['egon','male',18] 定义列表的目的不单单是为了存,还要考虑取值,如果想取出这个人的年龄 ,可以用 >>>info[2] 18 但这是基于我们已经知道在第三个位置存放的是年龄的前提下,我们才知道索引2对应的是年龄 #name , sex ,age info=['egon','male','18] 而这完全是一种假设,并没有真正意义上规定第三个位置存放的是年龄,于是我们需要寻找一种,既可以存放多个任意类型的值,又可以硬性规定值得映射关系的类型,比如key=value, 这就到了字典。
#在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型 定义:info={'name':'egon', 'age':18, 'sex':18} #info=dict({'name':'egon', 'age':18, 'sex':18}) 用于标识: 存储多个值得情况,每个值都有唯一一个对应的key,可以更方便高效的取值。
info={ 'name':'egon', 'hobbies':['play','sleep'], 'company_info:{ 'name':'olbdoy', 'type':'education', ‘emp_num’:40, } } print(info['company-info'] ['name]) #取名字 students=[ {'name':'alex','age':38,'hobbies':['play','sleep']}, {'name':'egon','age':18,'hobbies:['reed',sleep']}, {'name':'xiaoxiong','age':58','hobbies':['music',read','sleep']} ] print(students[1] ['hobbies'] [1]) #取第二个学生的爱好
六、布尔
#布尔值,一个True一个False #计算机俗成电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人脑能干什么,计算机就应该能干什么。人脑的主要作用是数据运行与逻辑运算,此处的布尔值类型就是模拟人脑的逻辑运行,即判断一个条件成立时,用True标识,不成立时 则用False标识。
>>>a = 3
>>>b = 5
>>>
>>> a > b #不成立就是false ,即假
False
>>>
>>>a < b #成立就是True
True
接下来就可以根据条件结果来干不同的事情:
if a >b
print(a is bigger than b)
else
print(a is smaller than b)
上面是伪代码,意味着,计算机已经可以像人脑一样根据判断结果不同,来执行不同的动作。
七、布尔类型的重点知识!!!:
#所有数据类型都自带布尔值 1、None, 0, 空(空字符串、空列表、空字典等)三种情况下布尔值为False 2、其余均为真。
7.1重点:
#1、可变类型: 在id不变的情况下,value可以变,则称为可变类型。如字典、列表 #2、不可变类型: value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
7.2格式化输出:
程序中经常会出现这样的场景:要求用户输入信息,然后打印成固定的格式。
比如:要求用户输入名字和年龄,然后打印如下格式:
My name is xxx, my age is 18.
很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定xxx的位置,而且数字也必须经过str(数字)的转化才能与字符串进行拼接。
这里就用到占位符、%s、%d
# %s字符串占位符: 可以接受字符串,也可以接受数字 print('My name is %s, my age is %s' %('egon',18)) # %d数字占位符: 只能接受数字。 print('My name is %s, my age is %d' %('egon', 18)) print('My name is %s, my age is %d' %('egon','18')) #报错 #接收用户输入,点成指定格式 name=input('your name: ') age = input('your age: ') # 用户输入18,会存成字符串18,无法传给%d print('My name is %s, age is %s' %(name,age)) #注意: #print('My name is %s, my age is %d' %(name,age)) #age 为字符串类型,无法传给%d,所以会报错。
八、基本运算符:
计算机可以进行的运算有很多种,可不只是加减乘除这么简单,运算按种类可以分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算、先学习算数运算、比较运算、逻辑运算、赋值运算。
算数预算:
假设a=10,b=20

比较运算符:
假设a=10,b=20

赋值运算:
假设a=10,b=20

逻辑运算:

#1、三者的优先级关机: not>and>or, 同一优先级默认从左往右计算 >>>a>4 and 4>3 or 1==3 and 'x' =='x' or 3>3 False #2、最好使用括号来区分优先级,其实意义与上面一样 ''' 原理为: (1) not的优先级最高,就是把紧跟其后的那个条件结果取反,所以not与紧跟其后的天剑不可分割 (2) 如果语句中全部用and连接,或全部用or连接,那么按照从左到右的顺序一次计算即可 (3)如果语句中既有and也有or,那么先用括号把and的左右两个条件给括起来,然后再进行运算 ''' >>>(3>4 and 4>3) or (1==3 and 'x' =='x' ) or 3>3 False #3、短路运算: 逻辑运算的结果一旦可以确定,那么就以当前处计算的值作为最终返回 >>> 10 and 0 or '' and 0 or 'abc' or 'egon' == 'dsd' and 333 or 10 >4 用括号确认以下优先级 >>>(10 and 0) or ('' and 0) or 'abc' or ('egon' == 'dsd' and 333) or 10 >4 短路 : 0 '' 'abc' 假 假 真 返回: 'abc' #4、短路运算面试题: >>> 1 or 3 1 >>>1 and 3 3 >>>0 and 2 and 1 0 >>> 0 and 2 or 1 1 >>>0 and 2 or 1 or 4 1 >>>0 or False and 1 False
九、身份运算
#is比较的是id #而==比较的是值
十、流程控制之if....else:
既然编程的目的是为了控制计算机能够像人脑一样工作,那么人脑能做什么,就需要程序中有相应的机制去模拟。人脑无非是数学运算,逻辑运算。
1、如果:女人的年龄>30,那么:叫阿姨
age_of_girl = 31 if age_of_girl >30 print('阿姨好')
2、如果:女人的年龄》30岁,那么:叫阿姨,否则:叫小姐
age_of-girl = 18 if age_of_girl > 30: print('阿姨好') else: print('小姐好')
3、如果:女人的年龄>=18并且<22岁并身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨
age_of_girl = 18 height = 171 weight = 99 id_pretty = True if age_of_girl >= 18 and age_of_girl <22 and height > 170 and weight < 100 and is_pretty = True: print('表白....')else: print('阿姨好')
#在表白的基础上继续: #如果表白成功,那么在一起。 #否则: 打印。。。 age_of_girl=18 height=171 weight=99 is_pretty=True success=False if age_of_girl >= 18 and age_of_girl < 22 and height >170 and weight <100 and is_pretty == True: if success: print('表白成功,在一起') else: print('什么爱情不爱情,ainmb的爱情,。。。。') else: print('阿姨好')
4、如果: 成绩>=90,那么:优秀
如果成绩>=80且<90 那么:良好
如果成绩>=70且<80 那么 普通
其他情况: 很差
score=input('>>: ') score=int(score) if score >= 90: print('优秀') elif score >= 80: print('良好') elif score >=70: print('普通') else: print('很差')
if 条件1: 缩进的代码块 elif 条件2: 缩进的代码块 elif 条件3: 缩进的代码块 ......... else: 缩进的代码块
十一、流程控制之 while 循环:
1、为何要用训话?
#上面学习了if..else来完成年龄游戏,但if循环只能才一次就中的几率太小了,如果玩家给三次机会呢? age_of_oldboy = 48 guess = int(input(">>:")) if guess > age_of_oldboy : print("猜的太大了,往小里试试...") elif guess < age_of_oldboy : print("猜的太小了,往大里试试...") else: print("恭喜你,猜对了...") #第2次 guess = int(input(">>:")) if guess > age_of_oldboy : print("猜的太大了,往小里试试...") elif guess < age_of_oldboy : print("猜的太小了,往大里试试...") else: print("恭喜你,猜对了...") #第3次 guess = int(input(">>:")) if guess > age_of_oldboy : print("猜的太大了,往小里试试...") elif guess < age_of_oldboy : print("猜的太小了,往大里试试...") else: print("恭喜你,猜对了...") #像这样复制三次if循环吗? 代码太丑了
#打印0-10: count=0 while count <= 10: print('loop',count) count+=1 #打印0-10之间的偶数: count= 10 while count <= 10: if cound%2 == 1: print('loop',count) count += 1
死循环:
import time num = 0 while True: print('count',num) time.sleep(1) num+1
循环嵌套与tag
tag=True while tag: .... while tag: ..... while tag: tag=False
十二、流程控制 之for循环
1、选代式循环: for,语法:
for i in range(10):
缩进的带块
2、break与continue(同上)
3、循环嵌套
for i in range(1,10): for j in range(1,i+1): print('%S*%S=%S' %(i,j,i*j,end=' ') print()

浙公网安备 33010602011771号