python 基础 一
1.今日内容大纲
- python的出生与应用
- python的分类
- python的优缺点
- python解释器的种类
- 运行第一个python程序
- 变量
- 常量
- 注释
- 数据类型初识
- 用户输入input
- 流程控制语句if
- 格式化输出
2.具体内容
面试题:python2x版本和python3x版本有什么区别?
1. 源码上的区别:
python2x源码冗余,重复代码多,混乱。
python3x整合源码,使其优美清晰简单。
2. 方法上的区别:私下找5个不同
python2x:
print 555 或者 print(555)
range(1,11)迭代器, xrange(1,11)与python3x的range相同
python3x:
print(555)
range(1,11)
3.Python2 中使用 ASCII 码作为默认编码方式导致 string 有两种类型 str 和 unicode,Python3 只
支持 unicode 的 string
4.不相等操作符"<>"被 Python3 废弃,统一使用"!="
5.long 整数类型被 Python3 废弃,统一使用 int
6.file 函数被 Python3 废弃,统一使用 open 来处理文件,可以通过 io.IOBase 检查文件类型
2.python语言的分类
编译型,解释型
-
编译型
将程序全部编译成二进制,然后一次性全部交给计算机执行。
优点:执行效率相对高。
缺点:开发效率低,不能跨平台。
代表语言:C,C++语言。
-
解释型
当程序执行时,对代码逐行解释成01010 ,逐行运行。
优点:开发效率高,可以跨平台。
缺点:执行效率相对低。
代表语言:python语言。
3.python的优缺点
优点:
- 开发效率非常高,Python有非常强大的第三方库。
- 高级语言:不用管理内存级别的细节。
- 可移植性:不同平台之间互相移植。
- 可扩展性,可以嵌入性:python与C/C++可以互相嵌入。
缺点:
- GIL全局解释器锁。(后面会讲到)
4.python解释器的种类
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CwkjtkQA-1599476463685)(https://s1.ax1x.com/2020/09/06/weTLqA.png)]
5.运行第一个python程序
6.变量
print(1+2+3+4+5)
print((1+2+3+4+5)*4-20)
print((((1+2+3+4+5)*4-20)+60)/5)
x = 1+2+3+4+5
y = x*4-20
z = (y+60)/5
print(z)
print("贾思特勒夫斯基")
print("贾思特勒夫斯基" + "他特别nb")
name = "贾思特勒夫斯基"
print(name + '他特别nb')
print(name + '他特别nb')
变量:用简单的字母指代一些数据,以便后续程序使用。
设置变量的规则:
-
要以数字,字母,下划线任意组合。
-
不能以数字开头。
-
变量要具有描述性。
-
不能是python中的关键字。
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
-
变量不宜使用中文,不能使用拼音。
-
推荐驼峰体下划线。
AgeOfBoy = 18 age_of_boy = 18 推荐
课上练习:
— = 11
_ = 22 True
*_ = 33
4re = 55
name_ = '太白' True
n aa = 666
4$ = 33
__ = 222 True
变量在内存中是唯一的。
name1 = '鹏达'
name2 = '宇婷'
name1 = '新月'
print(name1)
age1 = 20
age2 = age1
age3 = age2
age2 = 30
print(age1,age2,age3)
7.常量
生活中什么不变的量?
π,身份证号,生日,等等。
python中将变量全部大写,就变成了常量,当你看到其他人的代码中有全部大写的变量,你想要在程序中设置一些只让其他程序员使用但是不让其修改的变量,你就设置成常量。
BIRTHDAY = '20000315'
IDEN_NUM = 1306042342313213
文件路径:
FILE_PATH = 'd:\t1.py'
8.注释
解释说明。
生活中:文言文中,晦涩难懂的出处典故,加以注释。
代码中:一些精简的代码,函数,类,文件,加上注释去解释说明。
l1 = []
for i in range(1,11):
l1.append(i)
l2 = [i for i in range(1,11)]
单行注释:
# 用列表推导式构建的一个列表:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
多行注释: """被注释内容""" '''被注释内容'''
9.数据类型初识
-
引子
人类是可以对数字1,与汉字的‘中国’进行简单区分的,但是计算机是很傻的,他不能判断1,与中国,与helloworld有什么区别。我们应该制定区分不同数据类型的规则,让计算机可以区分不同的数据,从而进行不同的运算。
-
数字int
在32位机器上,整数的位数为32位,取值范围为
-2**31~2**31-1
,即-2147483648~2147483647在64位系统上,整数的位数为64位,取值范围为
-2**63~2**63-1
,即-9223372036854775808~92233720368547758071 200 -45 ...... 可以用于计算加减乘除,计数,比大小。 float,复数。
-
字符串str
只要是带引号的都是字符串。单引号,双引号,三引号。
n1 = '大花' n2 = "太白" n3 = """小送""" # 单双引号配合使用 msg = 'I am jia, 20 years old' msg1 = "I'm jia, 20 years old" # 三引号是标记多行的字符串 # s1 = """鹅鹅鹅 # 曲项向天歌""" # print(s1) # 字符串可以与字符串相加 拼接 s1 = '大花' s2 = '王鹏达' # print(s1 + s2 + '小宋') # 字符串可以与数字相乘 s3 = '小马' print(s3*8)
-
bool值
两种状态:True,False
print(3 > 2)
10.用户输入input
-
引子
用户输入用户名,密码时,需要用到功能。
-
语法:
input("提示语") 不输入内容,程序就会夯住,阻塞。
-
测试:
input出来的都是str类型
username = input("请输入用户名:") password = input("请输入密码:") # print(username,password) print(type(username))
11.流程控制语句if
-
引子
生活中会面临各种选择,回家路线,吃什么,穿什么,喝什么等等,程序中也会有这样的选择。
-
单独if
-
语法
if 条件: 结果
-
测试
# 单独if # age = input("请输入年龄") # if int(age) < 18: # print('你还是曾经那个少年,禁止访问') # # print(666) # print(type(age)) # str类型
-
-
二选一
-
语法
if 条件: 结果 else: 结果
-
测试
age = int(input("请输入年龄")) if age < 18: print('你还是曾经那个少年,禁止访问') else: print('FBI warning,欢迎回来')
-
-
多选
-
语法
if 条件: 结果 elif 条件: 结果 elif 条件: 结果 ...... else: 结果
-
测试:
num = int(input("请输入你猜的数字")) if num == 1: print("我请你吃饭") elif num == 3: print('你请我吃饭') elif num == 6: print('我请你大宝剑') else: print('这都没猜对')
-
-
if的嵌套
-
语法
if 条件: if 条件: 结果 else: if 条件: if 条件: 结果 else: 结果 else: 结果 else: 结果
-
测试
# if的嵌套 username = input("请输入用户名:") password = input("请输入密码:") if username == 'barry': if password == '123': print('用户名密码正确') else: print('密码错误') else: print('用户名不存在')
-
12.格式化输出
-
引子
xx同学写一个自己的简介:
------------ info of 小花 ----------- Name : 小花 Age : 18 job : student Hobbie: 男 ------------- end -----------------
我们需要制作一个字符串的模板,让这个字符串的某些位置变成动态可变的,其他的位置不变。
-
测试
标记一个你想要改变的位置,%占位符,s: str字符串类型,d: 数字类型。
# msg = """------------ info of %s ----------- # Name : %s # Age : %d # job : %s # Hobbie: %s # ------------- end -----------------""" % ('大花', '大花',19,'student','boy') # print(msg) # name = input('请输入姓名:') # age = input('请输入年龄:') # job = input('请输入工作:') # hobby = input('请输入爱好:') # # msg = """------------ info of %s ----------- # Name : %s # Age : %d # job : %s # Hobbie: %s # ------------- end -----------------""" % (name, name,int(age),job,hobby) # print(msg) # 坑 msg = "我叫%s, 今年%s岁,学习进度1%%" % ('鹏达','20') print(msg)
dent’,‘boy’)
print(msg)
name = input(‘请输入姓名:’)
age = input(‘请输入年龄:’)
job = input(‘请输入工作:’)
hobby = input(‘请输入爱好:’)
msg = “”"------------ info of %s -----------
Name : %s
Age : %d
job : %s
Hobbie: %s
------------- end -----------------""" % (name, name,int(age),job,hobby)
print(msg)
msg = “我叫%s, 今年%s岁,学习进度1%%” % (‘鹏达’,‘20’)
print(msg)