Day 01 :数据类型初识及循环
1. 变量
变量:将程序中运算的中间结果暂时存到内存中,以便后续程序调用。
规则:
1、变量是由数字字母下划线任意组合;
2、变量不能是数字开头;
3、变量不能是python中的关键字;
4、变量要具有可描述性;
5、变量不能使用中文;
书写格式:
驼峰体
AgeOfOldboy = 56
NumberOfStudents = 80
下划线
age_of_oldboy = 56
number_of_students = 80
2. 常量
常量:一直不变的量 ,例如:π;约定俗成全部代谢的变量为常量。放在文件最上面。
3. 注释
注释:
单行注释:#
多行注释:''' ''' """ """
4. 数据类型
什么是数据类型?
我们人类可以很容易的分清数字与字符的区别,但是计算机并不能,它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有数据类型,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。Python中常用的数据类型有多种,例如: 数字、字符串、布尔类型等等。
4.1 整数类型(int)
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
注意:在Python3里不再有long类型了,全都是int。
使用type()可以查看数据类型:
1 >>> a=6 2 >>> print(type(a)) 3 <class 'int'> 4 >>>
4.2 字符串类型(str)
python中用引号引起来的叫做字符串,用处是可以存放简单少量的数据,引号可以是单引号、双引号、三引号。
1 >>> a='你好' 2 >>> print(type(a)) 3 <class 'str'> 4 >>>
单引号与双引号没有任何区别,如果字符串中存在单引号,可以用双引号,如果字符串中有换行的数据,可以用三引号。
1 >>> a='你好' 2 >>> b="I'm 18 years old" 3 >>> c=''' 4 ... 你好 5 ... 北京 6 ... ''' 7 >>>
字符串拼接:字符串只能进行"相加"和"相乘"运算。
1 >>> a='你好' 2 >>> b="I'm 18 years old" 3 >>> c=''' 4 ... 你好 5 ... 北京 6 ... ''' 7 >>> a='你好' 8 >>> b='北京' 9 >>> print(a+b) 10 你好北京 11 >>> print(a*10) 12 你好你好你好你好你好你好你好你好你好你好 13 >>>
注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接。
4.3 布尔值(True,False)
布尔类型很简单,就两个值 ,一个True(真),一个False(假),主要用记逻辑判断。
1 >>> a=0 2 >>> b=1 3 >>> print(a>b) 4 False 5 >>> print(a<b) 6 True 7 >>>
5. 用户交互
5.1 input()
将所有输入默认为字符串处理,并返回字符串类型
1 username=input('请输入您的姓名:') 2 sex=input('请输入您的性别:') 3 print('我的名字是:'+username,'我的性别是:'+sex) 4 #打印username、sex数据类型 5 print('username数据类型',type(username),'sex数据类型',type(sex))
5.2 格式化输出
格式化输出 %占位符 s代表字符串 d代表数字
str 转换成 int 前提:str全部由数字组成
例1:
1 name=input('请输入您的名字:') 2 age=input('请输入您的年龄:') 3 job=input('请输入您的工作:') 4 hobby=input('请输入您的爱好:') 5 6 msg='''-------------- info of %s ------------- 7 Name :%s 8 Age :%d 9 Job :%s 10 Hobbie:%s 11 -------------- end ------------- 12 '''%(name,name,int(age),job,hobby)#括号括起来的相当于元组 13 print(msg)
例2:
1 name=input('请输入您的名字:') 2 age=input('请输入您的年龄:') 3 job=input('请输入您的工作:') 4 hobby=input('请输入您的爱好:') 5 dic={'name':name,'age':int(age),'job':job,'hobby':hobby}#括号括起来的相当于字典 6 msg='''-------------- info of %(name)s ------------- 7 Name :%(name)s 8 Age :%(age)d 9 Job :%(job)s 10 Hobbie:%(hobby)s 11 -------------- end ------------- 12 '''%dic 13 print(msg)
例3:
1 #因为用到格式化输出,就会把里面的所有%当成占位符,所以想显示单纯的百分号,需要前面在加一个百分号j进行转义 2 msg='班级总人数为%s,女同学站班级总人数的的%%35'%('100') 3 print(msg)
6. 基本运算符
运算符:计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算。
6.1 算数运算
以下假设变量:a=10,b=20
6.2 比较运算
以下假设变量:a=10,b=20
6.3 赋值运算
以下假设变量:a=10,b=20
6.4 逻辑运算
优先级:在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
备注:
1、前后都是数字 ,x or y if x is True,return x,else return y ,与and相反
2、int 转换 bool 非0为True 0为False
1 print(3 or 4)#结果3 2 print(2 or 4)#结果2 3 print(0 or 4)#结果4 4 print(3 and 5)#结果5 5 print(1>2 or 3 and 4>5)#结果False
7. if语句
7.1 if语句
可以实现条件执行,如果条件为真,那么后面的语句块就会被执行。如果条件为假,语句块就不会执行。
1 a=int(input('猜数字:')) 2 if a==6: 3 print('恭喜你猜对了')
7.2 else子句
else子句可以为if语句增加一种选择,如果if后的语句块没有被执行,那么就会执行else中的语句块就会执行。
1 a=int(input('猜数字:')) 2 if a==6: 3 print('恭喜你猜对了') 4 else: 5 print('猜错了')
7.3 elif子句
如果需要检查多个条件,就可以使用elif。
1 a=int(input('猜数字:')) 2 if a==6: 3 print('恭喜你猜对了第一个数字') 4 elif a==7: 5 print('恭喜你猜对了第二个数字') 6 elif a==8: 7 print('恭喜你猜对了第三个数字') 8 else: 9 print('三个数字全部猜错了')
7.4 嵌套代码块
if语句里面可以嵌套使用if语句。
1 a=int(input('猜数字:')) 2 if a==6: 3 print('恭喜你猜对了第一个数字') 4 a = int(input('猜数字:')) 5 if a==7: 6 print('恭喜你猜对了第二个数字') 7 else: 8 print('第二个数字猜错了') 9 else: 10 print('第一个数字猜错了')
8. while循环
8.1 while循环
当while后面的条件为真时,while里面的语句块会循环执行。
1 #打印1到100 2 count=1 3 while count<101: 4 print(count) 5 count+=1
1 #打印1加到100的和 2 count=1 3 sum=0 4 while count<101: 5 sum=sum+count 6 count+=1 7 print(sum)
8.2 定义标志位
1 #定义标志位 2 count=1 3 flag=True 4 while flag: 5 print(count) 6 count+=1 7 if count==101: 8 flag=False
8.3 break与continue关键字
break:结束循环;
continue:跳出本次循环,进行下一次循环。
1 #continue 2 count=1 3 while count<=5: 4 if count==4: 5 count += 1 6 continue 7 print(count) 8 count += 1
1 #break 2 count=1 3 while count<=5: 4 if count==4: 5 count += 1 6 break 7 print(count) 8 count += 1
8.4 else子句
如果while循环被break打断,不会执行else,否则执行else。
1 count=1 2 while count<5: 3 print(count) 4 if count==3:break 5 count+=1 6 else: 7 print('循环正常完毕')#因为被break打断,所以else语句块不执行
1 count=1 2 while count<5: 3 print(count) 4 count+=1 5 else: 6 print('循环正常完毕')#因为没有被break打断,所以else语句块执行
9. for循环
9.1 for循环
while语句非常灵活,它可以用来在任何条件为真的情况下重复执行一个代码块。一般情况下这样就够用了,但是有些情况下,要为集合(序列和其他可迭代对象)的每个元素都执行一个代码块,就需要使用到for循环。
1 #循环链表 2 li=[1,2,3,4] 3 for i in li: 4 print(i) 5 #循环字符串 6 s='hello' 7 for i in s: 8 print(i)
9.2 else子句
和while的用法一致,如果for循环被break打断,不会执行else,否则执行else。
1 l1=[1,2,3,4,5] 2 for i in l1: 3 print(i) 4 if i==3:break 5 i+=1 6 else: 7 print('循环正常完毕')#因为被break打断,所以else语句块不执行
1 l1=[1,2,3,4,5] 2 for i in l1: 3 print(i) 4 i += 1 5 else: 6 print('循环正常完毕')#因为没有被break打断,所以else语句块执行