一、编程语言
1、 编译型语言:先编译,再执行 (先编译成二进制)
举例:英文书翻译成中文再看
C、C++、C#
2、解释型语言:一边执行一边编译
举例:英文书找个翻译,它翻译一行你听一行
php、js、python、java、go
二、输入输出
1、基础字符类型
name = '小黑'#字符串 str
age = 18 #整数类型 int
score = 97.5 #浮点型 float
2、输入输出
your_name = input('请输入你的名字:')#python2中用raw_input
print('你的名字是:',your_name)
备注:
1) input接收到的都是string类型,需要强制转换
2)单引号和双引号
使用时无区别,依据具体情况使用
word1 = "let's go"word2= 'tom is very "shy"'word3= '''let's go ,tom is very "shy"'''
print(word1)print(word2)print(word3)
3、注释
对选中代码进行注释:注释快捷键ctrl+/
多行注释 :三个引号(单引号/双引号)
print('hello world!')#单行注释
"""双引号注释
多行注释"""
'''单引号注释
多行注释'''
print('hello world!')
三、条件判断
1、运算符
>、<、 >=、 <=、 !=、==
2、if ... elif ... else
score = input('请输入你的分数:')
score=int(score) #input接收到的都是string类型,需要强制转换if score >= 90:print("优秀")elif score<90 and score>=75:print("良好")elif score>=60 and score<75:print("及格")else:print("不及格")if score == 90:print("猜对了")if score != 83:print("不等于83")
三、循环、遍历、迭代
while: 需要定义计数器,每次循环计数器增加,否则就会变成死循环
break:循环里面遇到break循环立即结束
continiue:循环里面遇到continue,结束本次循环
type(val) 查看变量的类型
循环对应的else:当循环正常结束后(不是通过break结束),会执行else中代码
1、python中的while循环
1)break
count = 0 #计数器
rate = 140
while count<10:if rate >160:break
print("跑圈", count)
count= count+1rate+=5
2)continue
count = 0 #计数器
rate = 140
while count<10:
count= count+1
if rate >160:
rate-= 10
continue
print("跑圈", count)
rate+= 5
count =1 跑圈1 rate=145
count =2 跑圈2 rate=150
count =3 跑圈3 rate=155
count =4 跑圈4 rate=160
count =5 跑圈5 rate=165
count =6 rate=165 进if rate=155 遇到continue不打印跑圈直接进入下一次循环
count =7 跑圈7 rate=160
count =8 跑圈8 rate=165
count =9 rate=165 进if rate=155 遇到continue不打印跑圈直接进入下一次循环
count =10 跑圈10 rate=160
2、python中的for循环
1)for循环
rate=130,跑到第7圈后休息
rate = 130
for i in range(10):print("跑圈", i)if rate > 160:print("休息")breakrate+=5
2)for...else
循环对应的else:
当循环正常结束后,会执行else中的代码,不是通过break结束的。
例如 本来循环10次,循环十次后正常结束,会执行else。
for i in range(10):print(i)else:print('什么时候执行')
非正常结束:
for i in range(10):print(i)if i== 8:break
else:print('什么时候执行')
备注:while... else同样
count=0while count<3:print(count)
count+=1
else:print("执行else")
练习:
写一个小游戏:猜数字
# 最多输入5次,如果猜的数字不对,提示大了或小了,猜对了游戏结束,如果次数用尽没猜对,提示已经到达次数
分析:
importrandom
number= random.randint(1,100)for i in range(5):
guess= input("请输入你猜测的数字:")
guess=int(guess)if guess==number:print("恭喜你猜对了,游戏结束")break
elif guess>number:print("猜的数字大了")continue
else:print("猜的数字小了")continue
else:print("错误次数过多")
方法二:使用continue实现
importrandom
number= random.randint(1,100)for i in range(5):
guess= input("请输入你猜测的数字:")
guess=int(guess)if guess==number:print("恭喜你猜对了,游戏结束")break
elif guess>number:print("猜的数字大了")continue
else:print("猜的数字小了")continue
else:print("错误次数过多")
四、运算
1、常用运算符号:
+ - * / // %
+= -+ *= /= //=
2、地板除:
print(5//2) #地板除,不要小数部分
#pyhon2 里面默认 /就是地板触发 5/2=2 5/2.0=2.5
3、取模:
print(5%2) #取余数,取模
4、a+=1#a=a+1
print(5//2)print(5%2)
a=1a+=1 #a=a+1
print(a)print(1.5+2)
5、字符串中的+ 和 *
a='my name is'b='Marry'
print(a+' '+b)print(b*3)
五、字符串格式化
1、加号连接
importdatetime
name='小明'welcome= '小明,欢迎登陆'today=datetime.datetime.today()print(name + ',欢迎登陆.'+'今天的日期是:'+str(today))#不推荐会在内存开创3个空间
2、占位符 %s字符串 %d整数型 %f浮点型
importdatetime
name='小明'today=datetime.datetime.today()
welcome = '%s,欢迎登陆' %nameprint(welcome) welcome= '%s,欢迎登陆,今天的日期是 %s' %(name,today)print(welcome)
age = 18age_str= '你的年龄是:%d' %ageprint(age_str)
score= 73.985score_str= '你的成绩是:%f' %score
score_str2= '你的成绩是:%.2f' %score #保留2位小数
print(score_str)print(score_str2)
3、大括号方式(适合参数较多的情况)
.format(大括号中定义的变量=赋值的变量)
sub_name = 'Lily'today= datetime.datetime.today()score= 98.133addr="北京"welcome= '{name1},欢迎登陆,今天的日期是{today1}'.format(today1=today,name1=sub_name)print(welcome)
welcome2= '{},欢迎登陆,今天的日期是{}'.format(sub_name,today)print(welcome2)
六、列表
Python内置的一种数据类型是列表:list。
list是一种有序的集合,可以随时添加和删除其中的元素。
1)增加
append('xxxxx') 向列表末尾增加元素
insert(位置脚标,'xxxxxx') 向指定位置增加元素
student_new = ['张三','李四','王五']print("增加")
student_new.append('Marry') #向列表末尾增加元素
student_new.insert(0,'Tom') #向指定位置增加元素
print(student_new[0])print(student_new)print(student_new[-1])
2)修改
直接赋值
#修改#['Tom', '张三', '李四', '王五', 'Marry']
print("修改")
student_new[2]='Lisi'
print(student_new)
3)删除
4种方式删除
#['Tom', '张三', 'Lisi', '王五', 'Marry']
print("删除")print("1、传入指定下标,删除元素")#1、传入指定下标,删除元素
student_new.pop(1)print(student_new)#2、删除指定的元素(删除第一个符合的)
print("2、删除指定的元素")
student_new.remove('Lisi')print(student_new)#3
print("3 del")del student_new[-1]print(student_new)#4清空
print("4清空")
student_new.clear()print(student_new)
4)查询
student_new = ['张三','李四','王五']
z_count= student_new.count('张三')#统计list中某元素出现的次数
print(z_count)print(student_new.index('张三')) #找某元素下标
5)把一个列表中的元素加入到另一个列表中 extend()
student_new = ['张三','李四','王五']
student_new2= ['MARRY','TOM','JACK']
student_new.extend(student_new2)print(student_new)
6)反转reverse()
#['张三', '李四', '王五', 'MARRY', 'TOM', 'JACK']
print("反转list")
student_new.reverse();print('reverse反转之后:',student_new)
7)排序
升序:sort()
降序.sort(reverse=True)
print("排序")
student_new= ['MARRY','TOM','JACK']
student_new.sort()print(student_new)
numbers= [323,455,98,11,556,899,6]
numbers.sort()#默认升序排列
print(numbers)
numbers.sort(reverse=True)#降序排列
print(numbers)
8)多维列表
student_info =[
[1,'tom','beijing'],
[2,'mary','shanghai'],
[3,'lily','tianjin']
]
student_info2=[
[1,'tom','beijing',['bmz','benz','audi']],
[2,'mary','shanghai',['bmz','benz','audi']],
[3,'lily','tianjin']
]
student_info[0][-1]='山东'
print(student_info)
student_info2[0][-1].append('特斯拉')print(student_info2)
student_info2[0].pop(2)print(student_info2) #beijing删除了
student_info2[2].append(['五菱宏光','英菲尼迪'])print(student_info2)
练习:
录入学生信息判断学生是否存在,如果已经存在提示并继续添加
直到输入over,结束
分析:
student = ['lhy','hzy','fd']while 1>0:
a= input('请输入学生:')if a == 'over':break
#elif student.count(a)>0:
elif a in student: #用in判断是否在list中 ; elif a not in student:不在list中
print("已经存在")else:
student.append(a)print("已添加%s"%a)print('录入成功')print(student)
练习2:打印多维数组中元素
备注:len() 列表长度
student_info2 =[
[1,'lhy','beijing'],
[2,'hzy','beijing'],
[3,'ljj','beijing']
]
index=0
student_len=len(student_info2) #list长度
while index
stu= student_info2[index]
print(stu)
stuid= stu[0]
name = stu[1]
addr = stu[2]
sql = 'insert into student value ({id},"{name}","{addr}");'.format(
id=stuid,name=name,addr=addr
)
print(sql)
用拆包方式
student_info2 =[
[1,'lhy','beijing'],
[2,'hzy','beijing'],
[3,'ljj','beijing']
]
index=0
student_len=len(student_info2) #list长度
while index
stu= student_info2[index]
stuid,name,addr=stu#拆包代替以上代码(变量名称必须与数组中数量一致) sql= 'insert into student value ({id},"{name}","{addr}");'.format(id=stuid,name=name,addr=addr)print(sql) index+=1
用for循环:
for stu instudent_info2:
stuid2,name2,addr2=stu
sql= 'insert into student value ({id},"{name}","{addr}");'.format(
id=stuid2,name=name2,addr=addr2
)print(sql)
9)延伸学习——元祖tuple
另一种有序列表叫元组:tuple,tuple和list非常类似,但是tuple一旦初始化就不能修改,它没有append(),insert()这样的方法。
student= ('张三', '李四', '王五')
获取元素:print(student[0]),但不能赋值成另外的元素
tuple的意义:因为tuple不可变,所以代码更安全。
七、布尔类型
#bool 布尔类型#true 真#false 假
l= [1,2,3,4]print(1>2)print(4 inl)print(1 not inl)print(len(l)>3)