Python从入门到放弃
1.1 Python2与python3的区别
1.1.1 区别1—源码
Python2:源码重复,不规范
Python3:整合源码、更清晰优美简单
1.1.2 区别3—数据类型
1.1.3 区别4
Python2中:input() 只能输入数字类型
Python3中:input
1.2 语言的划分
1.2.1 编译型
特点:将你的代码全部编译成二进制,然后再执行
缺点:编译的时间长,开发效率低(如果出了问题,需要重新编译),不能跨平台
优点:执行效率高(c++)
典型代表:c++
1.2.2 解释型
特点:等程序开始运行时,它将代码一行一行的解释成二进制然后执行
缺点:执行效率低
优点:开发效率高,可以跨平台
典型代表:Python
1.2.3 区别2—编码
Python2:默认的编码是ascii
Python2:默认的编码是utf-8
1.3 Python的优缺点
1.3.1 Python的优点
1、 Python的定位是‘优雅’,‘明确’,‘简单’。所以Python程序看上去总是简单易懂,初学者学pthon,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序
2、 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子
3、 高级语言—当你用Python语言编写程序的时候,你无需考虑如何管理你的程序使用的内存一类的底层细节
4、 可移植性—由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
5、 可扩展性—如果你如要你的一段关键代码运行得更快或者某些算法不公开,你可以把你的部分程序用c或c++编写,然后在你的Python程序中使用它们
6、 可嵌入型—你可以把Python嵌入你的c/c++程序,从而向你的程序用户提供脚本功能
1.3.2 Python 的缺点
1.4 Python的种类
Cpython、jpython、pypy
1.5 17的pycharm安装,注册码好找
1.6 变量与常量
1.6.1 变量
1、 变量名是由数字字母下划线任意组合
2、 变量名不能是数字开头
3、 变量名不能是Python中的关键字
4、 变量名要具有可描述性
5、 变量名不能使用中文
6、 变量名不能过长
7、 官方的推荐方式
# 方式1:下划线
age_of_oldboy=56
number_of_students=80
# 方式2:驼房式
AgeOfOldboy=56
NumberOfStudents=80
1.6.2 常量
一直不变的量,约定俗称全部大写的变量名为常量,放到文件中最上面
# 常量案例
(π、新中国成立的日子,身份证号)
# 常量案例
BIRTH_OF_CHINA=1949
1.7 注释
单行注释可以用#
多行注释1:
三个单引号
'''
'''
三个双引号
"""
"""
多行注释2:
选中要注释的行,然后 ctrl+ ?
1.8 基础数据类型分类
什么是基础数据类型?
1.8.1 数字类型=int
int: 数字(运算,计算:+ - X %)
1.8.2 字符串类型=str
Str: Python中用引号引起来就叫字符串
用处:储存简单的少量数据(用户名、密码)
1.8.3 查看数据类型
print (666,type(666))
1.8.4 数字与字符串的拼接
+ 拼接
a='suyajun,'
b=' love:'
c='school'
d=a + b+c
print (d)
*:拼接,字符串与数字做乘法运算
a='suyajun,'
b=' love:'
c='school'
d=a + b+c
print (d*8)
1.8.5 单、双引号的区别以及三引号的用途
# 如果值中有单引号,则需要用到双引号==》案例如下
msg="My name is suyajun,I'm very
like school"
print(msg)
# 如果需要值换行,则需要用三引号==》案例如下
msg="""
今天我想写一首歌,
歌颂我的同桌,
这首歌名就叫。。。
同桌的你
"""
print(msg)
打印如下:
1.8.6 Bool值
Bool值的特点:条件成立则为真{true},条件不成立则为假的{flase}
实例1-1
实例1-2
1.9 用户交互
Input 出来的全是字符串
name=input('please you name:')
password=input('please
you pass:')
print (name,password)
print(type(password))
1.9.1 Inpu中字符串拼接
name=input('please you name:')
password=input('please
you pass:')
print ('My
name is:'+name,'My pass is:'+password)
1.9.2 格式化输出
%:占位符
D 表示数字类型
S 表示字符串类型
字符串装数字:int(age)
Str转换成数字类型,str必须
1.9.2.1 元组的形式
name=input('please you name:')
Age=input('please
you Age:')
job=input('please
you job:')
hobbie=input('please
you hobbie:')
msg='''
msg1 = ------------ info of %s
-----------
Name : %s
Age : %d
job : %s
Hobbie: %s
------------- end -----------------
''' %(name,name,int(Age),job,hobbie)
print (msg)
1.9.2.2 字典的形式
dic={'name':'suyajun','Age':18,'job':'it','hobbie':'scholl'}
msg1='''
msg1 = ------------ info of %(name)s
-----------
Name : %(name)s
Age : %(Age)d
job : %(job)s
Hobbie: %(hobbie)s
------------- end -----------------
''' % dic
print (msg1)
1.9.2.3 %转义
msg='my name is:%s,Age is:%s,进度 %%5' %('测试',18)
print(msg)
1.10 流程控制语句之if
1.10.1 一种条件
if
2>1:
print (666)
1.10.2 两种条件
if
2>3:
print (666)
else:
print (888)
1.10.3 多种条件
多选一,多种条件选一个即可
两个等号是比较,一个等号是赋值
number=int(input('please number:'))
if number == 6:
print ('eat')
elif number == 2:
print ('er')
elif number == 4:
print ('si')
1.10.4 多种条件必须走一条
number=int(input('please number:'))
if number == 6:
print ('eat')
elif number == 2:
print ('er')
elif number == 4:
print ('si')
else:
print ('Good bye')
1.10.5 If中的嵌套
number=int(input('please number:'))
if number >= 1:
if number
< 5:
print (666)
else:
if number
== 7:
print
('Yes')
else:
if
number == 8:
print
('No')
案例:猜分数
number=int(input('Please num : '))
if number > 100:
print ('Tai gao le')
elif number >= 90:
print ('A')
elif number >=80:
print ('B')
elif number >=70:
print ('C')
else:
print ('shit')
1.11 While循环语句
# while后面接条件,True中的T必须是大写
while True:
print ('Go')
print ('Scholl')
1.11.1 终止循环
方法1:改变条件
num=1
while num<=100:
print (num)
num=num+1
num=1
flag=True
while flag:
print (num)
num= num + 1
if
num==101:
flag=False
实例1-3 1加100次
num = 1
sum = 0
while num < 101:
sum = num + sum
num = num + 1
print (sum)
1.11.2 Break
特点:结束循环,跳出循环
while True:
print (' 333')
print (' 444')
print (' 666')
print (' 888')
break
print ('Hello')
print ('Good')
1.11.3 Continue
特点:跳出本次循环,进行下一次
while True:
print (' 333')
print (' 444')
print (' 666')
print (' 888')
continue
print ('Hello')
print ('Good')
1.11.4 While else
特点:如果while循环被break打断,则不走else
num=1
while num < 5:
print (num)
break
num = num+1
else:
print ('Ok')
1.12 基本运算
1.12.1 逻辑运算符
运算符 |
描述 |
实例 |
and |
布尔‘与’:如果x为False,x and y返回False,否则返回y的计算值 |
print (a and b) |
or |
布尔‘与’:如果x为True,x and y返回True,否则返回y的计算值 |
print (a or b) |
not |
布尔‘与’:如果x为False,x and y返回True,如果x为True,x and y返回False |
print (not(a and b)) |
1.12.2 优先级
逻辑运算符的优先级:()> not > and > or
print ( 2 > 1 and 3 < 4 or 4 > 5 and 2 < 1) #True
print
( 1 > 1 and 3 < 4 or 4 < 5 and 2 < 1 and 2 > 1 or 2 < 1) #False
# False or False and True
1.13 初始编码
1.13.1 编码的装换
Assic 8位==1字节,表示一个字符
A==01000001
万国码:unicode把所有国家的语言包含进去,一个字符有两个字节组成
A : 01000001 01000001 两个字节表示一个字符
中 : 01000001 01000001 两个字节表示一个字符
改版:浪费资源
A : 01000001 01000001 01000001 01000001 四个字节表示一个字符
中 : 01000001 01000001 01000001 01000001 四个字节表示一个字符
Unicode升级:utf-8
A : 01000001 一个字节
欧洲 : 01000001 01000001 两个字节
亚洲:中 01000001 01000001 01000001 三个字节
Utf-16 最少用16位表示一个字符
Gbk:国标
A:01000001 一个字节
中:01000001 01000001 两个字节表示一个字符
1.13.2 单位的装换
8bit = 1bytes
1024bytes == 1kb
1024kb == 1mb
1024mb == 1gb
1024gb == 1tb
1.14 基础数据类型
1.14.1 字典
[ ] 的是列表
{ } 的是字典
dic={'name':'Syj','Age':'18','Python':['苏亚军','东东']}
print (dic['Python'])
1.14.2 列表
lie=[1,3,5,'Syj']
print (lie[3])
1.14.3 For循环
For是有限循环
lie=[1,3,5,'Syj']
for i in lie:
if (lie[1]) == 3:
print ('Yes')
else:
print (666)
a = 'asdfghjddd'
for i in
a:
if i
== 'd' :
break
print
(i)
else:
print (666)
第2章 练习题
1、使用while循环输入 1 2 3 4 5 6 8 9 10
1 num=0 2 while num < 10: 3 num=num+1 4 if num == 7: 5 continue 6 print (num)
2、 求1-100的所有数的和
1 num=0 2 sum=0 3 while num < 100: 4 num+=1 5 sum+=num 6 print (sum)
3、 输出 1-100 内的所有奇数
1 num=0 2 sum=0 3 while num < 100: 4 num+=1 5 if (num % 2) == 1: 6 print (num)
4、 输出 1-100 内的所有偶数
num=0 sum=0 while num < 100: num+=1 if (num % 2) == 0: print (num)
5、 求1-2+3-4+5 ... 99的所有数的和
num = 0 for i in range(1,101): if (i % 2) == 0: num-=i else: num+=i print(num)
6、用户登陆(三次机会重试)
#用户登录(三次机会)
# input name password
# while 循环去匹配,用变量i
# 可以支持多用户登录
# 如果输入三次都没成功,给他一个选择,在试试
# 输入y在给他三次机会。。。不输入了,print ('Good bye')
lie=[{'name':'Alex','password':'hehe'}, {'name':'Wusir','password':'haha'}, {'name':'Taibai','password':'shuai'}] b = 4 c = 5 while True: name = input('please this is name:') password = input('please this is password:') for i in range(3): if lie[i]['name'] == name and lie[i]['password'] == password: print('欢迎登陆') exit(2) c-=1 if c == 0: print('抱歉您的机会用完了') exit(2) b-=1 print('账号或密码错误,您还有',b,'次机会') if b == 0: num = input('你是否还需要机会(N/Y)') if num == 'y': c = 3 else: print('GOOD BAY') exit(2)