Python基础(1)——输入输出/循环/条件判断/基本数据类型
一、编程语言
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+1 rate+=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("休息") break rate +=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=0 while count<3: print(count) count+=1 else: print("执行else")

练习:
写一个小游戏:猜数字
# 最多输入5次,如果猜的数字不对,提示大了或小了,猜对了游戏结束,如果次数用尽没猜对,提示已经到达次数
分析:

import random 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实现
import random 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=1 a+=1 #a=a+1 print(a) print(1.5+2)

5、字符串中的+ 和 *
a='my name is' b='Marry' print(a+' '+b) print(b*3)

五、字符串格式化
1、加号连接
import datetime name='小明' welcome = '小明,欢迎登陆' today = datetime.datetime.today() print(name + ',欢迎登陆.'+'今天的日期是:'+str(today))#不推荐会在内存开创3个空间

2、占位符 %s字符串 %d整数型 %f浮点型
import datetime name='小明'
today = datetime.datetime.today()
welcome = '%s,欢迎登陆' %name print(welcome) welcome = '%s,欢迎登陆,今天的日期是 %s' % (name,today) print(welcome)

age = 18 age_str = '你的年龄是:%d' %age print(age_str) score = 73.985 score_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.133 addr="北京" 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 < student_len: 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 < student_len: 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 in student_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 in l) print(1 not in l) print(len(l)>3)


浙公网安备 33010602011771号