预科day01
安装typroa
markdown的使用
python简介
python安装
pycharm安装
编译型语言与解释型语言的区别
预科day02
git与码云
思维导图
个人博客
day01
python入门
输出:print(要输出的内容)
print在python2中和Python3中的区别:
python2中print 和print()是等价的
python3中只能使用print()
变量
其值能够改变的量,通常指向常量的内存空间
比如上图:name = “帅帅”
"帅帅"是一个值,也可以叫淇淇,然后在我们现实生活中,我们都会给自己起名字来对应你这个人。那么,name就是那个名字。
当别人问你,你的名字是什么,那么我就会回答我是“帅帅”
当别人让你叫一下你们班里面一个叫琪琪的同学来办公室,那么“淇淇”就是她的名字。
这个时候我们发现叫某个人的名字,就会出现他的姓名。那么就跟我们的变量一一对应了。
name:就是变量名。
python中可以不指定他的数据类型,自动根据上下文判断。
“帅帅”就是变量值。可以给这个变量值起不同的名字。
比如“帅帅”在班级里面就叫同学,在家里面就叫大儿子,在社会上就叫小鲜肉,他们统一都指向了“帅帅这个人”
变量的定义规则
- 以字母,数字,下划线组成
- 不能以字母开头
- 不能是Python中的关键字
- 不能使用拼音或汉字
- 变量名称要有意义
变量名区分大小写
- 官方建议用驼峰体或者下划线
变量的赋值
直接使用:变量名 = 变量值
变量的小高级
age1 = 18
age2 = age1
age1 = 12
age3 = age2
print(age1,age2,age3)
代码是从上往下执行的,并且在内存中只能用一个名字相同的变量名
常量
python中没有常量
常量是程序猿约定俗称的:全部大写
常量可以修改但是不建议修改
常量一般用在配置文件中
注释
单行注释:#
多行注释:六个双引号或者单引号
基础数据类型初识
整型(int)
整数可以用于进行计算
python中除法获取的是小数,python2中除法获取的是向下取整数
赋值是使用一个=
比较是用的两个==判断其值是否相等
字符串(str)
用双引号括起来的就是字符串
- 字符串拼接
- 字符串 + 字符串
- 字符串倍增
- 字符串 * 数字
布尔值(bool)
True
False
程序交互
input(提示的内容)
在python3中Input获取到的都是字符串
强制数据类型转换就是在要转换的数据前面加药转换的类型:
num = 666
str(num):将整型666转为了字符串"666"
流程控制
固定解构:
if 条件:
缩进 成功要执行的代码
-
单if
if 条件: 结果
-
二选一
if 条件: 结果 else: 结果
-
多选一或零
if 条件: 结果 elif 条件: 结果 elif 条件: 结果
-
多选一
if 条件: 结果 elif 条件: 结果 elif 条件: 结果 else: 结果
-
if嵌套
if 条件: 结果 if 条件: if 条件: 结果
作业
-
通过代码来验证name变量是什么数据类型?
name = input(">>>") print(type(name))
-
if条件语句的基本结构?
-
单if
if 条件: 结果
-
二选一
if 条件: 结果 else: 结果
-
多选一或零
if 条件: 结果 elif 条件: 结果 elif 条件: 结果
-
多选一
if 条件: 结果 elif 条件: 结果 elif 条件: 结果 else: 结果
-
if嵌套
if 条件: 结果 if 条件: if 条件: 结果
-
-
用print打印出下面内容:
方法一 print("文能提笔安天下") print("武能上马定乾坤") print("心存谋略何人胜") print("古今英雄唯世君") #方法二 print(""" 文能提笔安天下, 武能上马定乾坤. 心存谋略何人胜, 古今英雄唯世君. """)
-
利用if语句写出猜大小的游戏:
设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。
#方法一
user_num = input(">>>")
if user_num.isdecimal():
if int(user_num) > 66:
print("is large")
elif int(user_num) < 66:
print("is little")
else:
print("is 66")
#方法二
user_num = input(">>>")
def num_judge(num):
if user_num.isdecimal():
if int(num) > 66:
print("is large")
elif int(num) < 66:
print("is little")
else:
print("is 66")
num_judge(user_num)
#方法三
user_num = input(">>>")
flag = True if int(user_num) >= 66 else False
if flag:
print("is large")
else:
print("is little")
-
单行注释以及多行注释?
- 单行注释:#
- 多行注释:六个单引号或者双引号
-
简述你所知道的Python3x和Python2x的区别?
print在python2中可以使用print和print()
print在Python3中只能使用Print()
input()在python3中接收到的是字符串
python2:源码不统一,功能重复,
代码重复
python3:源码统一,功能不重复,
代码不重复
-
提示用户输入的麻花藤. 判断用户输入的是否正确. 如果对, 提示真聪明, 如果不对, 提示用户输入错误
#方法一 user_input = input("请输入麻花藤:") if user_input == "麻花藤": print("真聪明") else: print("输入错误") #方法二 def user_judge(user): if user_input == "麻花藤": return True else: return False if user_judge(user_input): print("真聪明") else: print("输入错误")
-
模拟智能移动客服,首先给用户展示一下功能选项
1.查询剩余主动呼叫分钟
2.查询本地流量余额
3.查询全国流量余额
4.查询短信剩余条数
5.查询当前套餐
6.变更套餐
7.查询话费余额
8.查看缴费记录
用户输入序号给用户输出对应的功能!
#方法一
dict = {
1:"查询剩余主动呼叫分钟",
2:"查询本地流量余额",
3:"查询全国流量余额",
4:"查询短信剩余条数",
5:"查询当前套餐",
6:"变更套餐",
7:"查询话费余额",
8:"查看缴费记录"
}
print(msg)
user_input = input(">>>")
for i in dict:
if int(user_input) == i:
print(dict[i])
break
else:
print("输入错误或者没有这个选项")
#方法二
dict = {
1:"查询剩余主动呼叫分钟",
2:"查询本地流量余额",
3:"查询全国流量余额",
4:"查询短信剩余条数",
5:"查询当前套餐",
6:"变更套餐",
7:"查询话费余额",
8:"查看缴费记录"
}
print(msg)
user_input = input(">>>")
def user_judge(user):
for i in dict:
if int(user_input) == i:
print(dict[i])
return True
else:
return False
if not user_judge(user_input):
print("输入错误或者没有这个选项")
12.模拟QQ登录,让用户输入账号密码.将获取到的账号和密码与
账号: alex
密码: alex3714
进行校验.账号和密码都正确后提示登录成功,否则提示账号密码错误!
#方法一:错误
user = input(">>>")
password = input(">>>")
dict = {
"user":"alex",
"password":"alex3714"
}
def users(user,password):
for i in dict.values():
if (user in i) and (password in i): #当输入数字的时候,会判断结果为真,这是为什么?这是因为只要i里面存在的东西,就算是对的
print("111")
break
else:
print("222")
users(user,password)
#方法二:
user = input(">>>")
password = input(">>>")
dict = {
"user":"alex",
"password":"alex3714"
}
def user_judge(user,password):
if user == dict["user"] and password == dict["password"]:
return True
else:
return False
if user_judge(user,password):
print("登陆成功")
else:
print("登陆失败")
感悟
使用in的时候,只要存在就会返回真
day02
while
while的固定结构:
while 条件 冒号
缩进 循环体
while True:
print("淇淇是我女儿")
分析:
因为这个while循环的条件一直为真,也没有去刻意的终止他,也就是我们所说的死循环,所以这个结果会一直执行
while 条件 冒号
缩进 循环体
else:
结果
today = 1
while today < 2:
print("今天当淇淇的爸爸真开心")
print("明天相当淇淇的爷爷")
today = today + 1 #today += 1
else:
print("今天是第二天,也是淇淇的爷爷的一天")
淇淇的while挑战
- 求出1+2+3+…+100的和
- 求出1-2+3-4 + …-100的和
- 求出100以内的偶数
break
终止本次循环
while True:
print("帅帅今天只想帅一次就好")
break
分析:
因为只想帅一次,所以也就是只显示一次,那么直接显示完停止即可
continue
跳出当前循环,接着下一次循环
帅帅最近很苦恼,只想在周一,周三,周五的时候收拾打扮一下,周二跟周四不想收拾,实在是懒得不行。
day = 0
while day < 6:
if day % 2 != 0;
print("今天也是帅帅的一天")
else:
continue
day += 1
分析:
因为通过分析发现,1,3,5是奇数,奇数的特点就是对2取余不等0,所以我们通过这个可以判断出来帅帅的真实想法
将一个死循环变为有限循环:①加条件控制②加break语句
格式化
格式化故名思意就是将输出的内容按照固定的格式输出
name = "shuaishuai"
age = 18
#没有格式化前
print(name,"今年",age,"岁")
#格式化后
print("%s今年%d岁"%(name,age))
结论:
可以看出当使用格式化的时候,更容易清晰的知道输出了那些内容
切记要在被格式化输出的内容前面加%
python3.6有一个比较好玩的就是f-string
name = "shuaishuai"
age = 18
print(f"{name}今年{age}岁")
分析:
使用f之后会更加的简单直接明了,个人推荐使用f
而且使用f可以不需要在乎要格式化数据的位置
%s------str 占一个字符的位置
%i或者%d ----- int 占一个数字的位置
%()-----再给占的位置进行内容填充,这种填充是按照位置顺序填充的
运算符
算数运算符
+,-,*,/,//,**,%
/:结果为浮点数
//:结果为整除
赋值运算符
+=,-=,*=,/=,//=,**,%
比较运算符
大于,<,>=,<=,==,!=
成员运算符
in:只要某个字符存在与要判断的字符里面,就会返回真
not in
逻辑运算符
not,and,or
优先级:()>not>and>or
and
:两个条件都为真时才为真
or
:两个条件都为假时才为假
数字中只有0是False
面试小窍门:
and都为真的时候选择后边的内容
and都为假的时候选择前边的内容
and只要为假,其内容就是假的内容
or都为真的适合选择前边的内容
or都为假的时候选择后边的内容
编码初识
作业
1.判断下列逻辑语句的结果,一定要自己先分析 (5分钟)
1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6(此题有坑,看我图是做不出来的)
#分析:做这类题的时候,直接根据运算符的优先级和面试小窍门来进行做,可以尝试给每次做的那块加个括号,更容易发现怎么做
2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
先执行比较运算,在进行判断
最后的结果是:False
2.求出下列逻辑语句的值,一定要自己分析(10分钟)
1)8 or 3 and 4 or 2 and 0 or 9 and 7 结果:8
2)0 or 2 and 3 and 4 or 6 and 0 or 3 结果:4
3)1 and 0 or 8 and 9 and 5 or 2 结果:5
4)4 or 8 and not False and 8 or 9 结果:4
3.下列结果是什么? (10分钟)
- 6 or 2 > 1 #6
- 3 or 2 > 1 #3
- 0 or 5 < 4 # False
- 5 < 4 or 3 # 3
- 2 > 1 or 6 #True
- 3 and 2 > 1 #True
- 0 and 3 > 1 #0
- 2 > 1 and 3 #3
- 3 > 1 and 0 #0
- 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 #2
4.简述ASCII、Unicode、utf-8编码英文,中文个占用多少字节(5分钟)
ASCII:英文占一个字节,没有中文
Unicode:英文中文各占四个字节
utf-8:英文一个字节,欧洲两个字节,亚洲三个字节
5.简述位和字节的关系?(3分钟)
一个字节等于八位
6.while循环语句基本结构?(3分钟)
#结构一
while 条件 冒号
缩进 循环体
#结构二
while 条件 冒号
缩进 循环体
else 冒号
结果
7.利用while语句写出猜大小的游戏:(15分钟)
设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确,然后退出循环。
dic = {
-1:"结果大了",
0:"结果小了",
1:"结果正确"
}
def isRight(num):
if int(num) > 66:
return -1
elif int(num) < 66:
return 0
else:
return 1
while True:
user_input = input(">>>")
if isRight(user_input) != 1:
print(dic[isRight(user_input)])
else:
print(dic[isRight(user_input)])
break
结论:
虽然使用函数看起来比较臃肿,但是本着什么都练习一下的缘故,还是要分不同的思路试试
8.在7题的基础上进行升级:(20分钟)
给用户三次猜测机会,如果三次之内猜测对了,则显示猜测正确,退出循环,如果三次之内没有猜测正确,则自动退出循环,并显示‘太笨了你…’。
dic = {
-1:"结果大了",
0:"结果小了",
1:"结果正确"
}
def isRight(num):
if int(num) > 66:
return -1
elif int(num) < 66:
return 0
else:
return 1
count = 0
while count < 3:
user_input = input(">>>")
if isRight(user_input) != 1:
print(dic[isRight(user_input)])
else:
print(dic[isRight(user_input)])
break
count += 1
else:
print("太笨了你")
9.使用while循环输出 1 2 3 4 5 6 8 9 10 (20分钟)
def while_num(num):
count = 1
while count <= int(num):
print(count)
count += 1
user_input = input(">>>")
while_num(user_input)
10.求1-100的所有数的和
user_input = input(">>>")
def while_sum(num):
count = 1
sum = 0
while count <= int(num):
sum += count
count += 1
return sum
print(while_sum(user_input))
11.输出 1-100 内的所有奇数
user_input = input(">>>")
def while_sum(num):
count = 1
sum = 0
while count <= int(num):
if count % 2 == 1:
sum += count
count += 1
return sum
print(while_sum(user_input))
12.输出 1-100 内的所有偶数
user_input = input(">>>")
def while_sum(num):
count = 1
sum = 0
while count <= int(num):
if count % 2 == 0:
sum += count
count += 1
return sum
print(while_sum(user_input))
13.求1-2+3-4+5 … 99的所有数的和
user_input = input(">>>")
def while_sum(num):
count = 1
sum = 0
while count <= int(num):
if count % 2 == 1:
sum += count
else:
sum -= count
count += 1
return sum
print(while_sum(user_input))
14.⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
def login(user,password):
if user == "admin" and password == "admin":
return True
else:
return False
for i in range(3):
user = input("user:")
password = input("password:")
if login(user,password):
print(f"欢迎{user}登陆")
break
else:
print(f"你还有{2-i}次机会")
else:
print("小子,想盗谁号?")
感悟
仔细查看9到13题,你会发现一个新大陆。
如果没有发现,就打淇淇一顿。
如果发现了,就奖励淇淇学习第三课。
day03
整型
python3:int
python2:int,long(长整型)
bin:将十进制转换为二进制
age = 18 #帅帅每年都十八岁
print(bin(age))
结果:0b10010
如果我们想把0b去掉,可以有很多种方法,常用的有三种:
print(format(age,"b")) #0b10010
print(format(age,"08b")) #00010010 这样可以补足二进制的位数
print(bin(age)[2:]) #10010
print(re.findall("1.+",bin(age))) #['10010']
int:将二进制转换为十进制
int(bin(age),2)
布尔值
固定结构:数据类型(转换的类型)
数字中只有0是False,其余的都为True
字符串中只要有内容就是True,没有内容就是False
False:"",0,[],{},None
字符串详解
for循环
固定格式:
for 循环值 in 可迭代对象 冒号
缩进 循环体
name = "帅帅淇淇帅帅" #挨个输出
for i in name:
print(i)
for 循环值 in 可迭代对象 冒号
缩进 循环体
else 冒号
结果
name = "帅帅淇淇帅帅" #挨个输出
for i in name:
print(i)
else:
print("他们人呢?")
可迭代对象:基本数据类型除去(int,bool)都可以迭代
淇淇的进阶课堂
-
name = “帅帅淇淇帅帅”
- 输出字符串的索引
- 输出索引是奇数的值
- 输出索引是偶数的值
-
计算1+2+3+…100的和
-
判断i的值
for i in range(5): pass print(i)
-
一行代码输出1-10
感悟
只要是处理数据,第一时间应该以想到格式化为主
进制之间的转换,处理浮点数什么的,都应该第一时间想想格式化