Pythonの崎岖的进阶之路,Week_One - Python基础
写在前面
本python系列随笔,为学习老男孩python课程的学习笔记
学习目录
1.Python介绍
2.Python安装
3.Python的第一个程序
4.变量
5.用户输入
6.模块初识
7.表达式if...else语句
8.表达式while循环
9.表达式for循环
10.continue和break
一、Python介绍
Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
编程语言可以从以下几种方式分类:编译型和解释型,静态语言和动态语言,强类型定义语言和弱类型定义语言,Python是一种什么样的语言?
编译型VS解释型
编译型:把源程序每条语句都编译成机器语言,并保存成二进制文件,在运行时,计算机可以直接以机器语言来运行程序。
优势:编译型语言一般会有预编译对代码进行优化,因为编译只需要一次,执行时不需要编译所以程序执行效率高。可以脱离语言环境独立运行。
劣势:编译之后,如果需要修改程序则需要重新编译。程序编译时根据运行环境生成代码,代码移植后环境变化可能会出现问题,需要根据运行的操作系统环境编译不同的可执行文件。
解释型:当执行程序时,才逐条解释成机器语言来执行,因此相对于编译型语言速度较慢。
优势:有较好的兼容性,可以在不同环境直接运行,前提是安装了解释器(虚拟机)。使用灵活,修改程序后不用编译,可以快速部署,不用停机维护。
劣势:次运行的时候都要解释一遍,性能上不如编译型语言。
动态语言VS静态语言
动态语言:动态类型的语言是指在运行时才去检查数据类型的语言,即,动态类型语言在编程时不会给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
静态语言:与动态语言类型相反,它的数据类型检查是在编译期间完成的,即,在写程序时需要声明变量的数据类型,C/C++是静态语言类型的代表。
强类型定义语言VS弱类型定义语言
强类型定义语言:指如果一个变量被指定了某种数据类型,那么在不进行强制转换,它的数据类型将永远不会改变。
弱类型定义语言:数据类型被忽略的语言,与强类型定义语言相反,一个变量可以赋值多种数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
很多人对Python是强类型还是弱类型产生疑惑,其实可以根据一句话来判断:强类型语言不允许不同数据类型进行运算,python就是如此。
综上所述,Python是一门动态解释性的强类型定义语言。
Python的优缺点
优点:
1.Python是一门“优雅”、“简单”、“明确”的语言,对于初学者来说,入门简单。
2.开发效率高,Python有非常强大的第三方库,大多数功能都可以在Python库中找到模块支持。
3.高级语言——当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
4.可移植性、可扩展性、可嵌入性
缺点:
1.速度慢,由于解释型语言特点,Python相对于C语言速度较慢,但是大多数情况下用户无法感知到。
2.代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的。
3.线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点。待后续学习。
二、安装
Winows
1、下载安装包
https://www.python.org/downloads/
2、安装
勾选Add Python 3.7 to PATH,自动配置环境变量
3、验证
cmd 输入python提示Python 3.7.X版本信息为安装成功
4、安装Python解释器
(1)CPython
(2)IPython
(3)Pycharm,推荐
三、Python的第一个程序
1、交互式模式
打开CMD,输入python进入交互式模式,输入以下代码:
print("Hello World")
2、创建hello.py文件,并输入
print("Hello World")
打开cmd,进入hello.py所在路径,执行命令并输出结果:
F:\python\studyfile> python hello.py Hello World
四、变量
声明变量
#_*_coding:utf-8_*_ name = "Alex" // 声明了一个名为name的变量,变量值为:Alex
变量定义规则
1、变量名只能为字母、数字、下划线的组合 2、变量名第一个字符不可为数字,可以为下划线 3、python关键字不可声明为变量名,例如:and、class、except等
变量赋值
name = "Alex"
name2 = name
print(name, name2)
name = "Jack"
print("What is the value of name2 now?")
print(name2)
结果为:
Alex Alex What is the value of name2 now? Alex
可知,name2指向的是name指向的内容,而不是name,所以name改变并不会改变name2.
五、用户输入
#_*_coding:utf-8_*_
name = input("Please input your name: ")
print("hello, " + name)
六、模块初识
Python有非常强大的标准库及第三方库,几乎你想实现的功能都可以在相应的Python库中找到
getpass模块
输入密码时,如果想让密码不可见,则可以使用getpass模块中的getpass方法:
import getpass
# 将用户输入的密码内容赋值给pwd
pwd = getpass.getpass('password:')
#打印输入内容
print(pwd)
七、表达式if...else语句
场景一(# if...else...)
# 提示用户输入用户名及密码
# 验证用户名及密码
# 如果正确,输出“欢迎,XXX”
# 如果错误,输出“用户名或密码错误”
# -*- coding: utf-8 -*-
import getpass
_username = 'alex'
_password = '123'
username = input('username:')
password = getpass.getpass('password:')
print(username, password)
if _username == username and _password ==password:
print("欢迎," + _username)
else:
print("用户名和密码错误")
场景二(# if...elif...else...)
# 程序中设定好年龄,然后启动程序用户猜 # 如果用户输入大于设定,提示猜大了 # 如果用户输入小于设定,提示猜小了 # 如果用户输入等于设定,提示正确
# -*- coding: utf-8 -*-
my_age = 29 guess_age = input("input your guess age: ") if guess_age == my_age: print("Congratulations, you got it !") elif guess_age > my_age: print("think bigger !") else: print("think smaller !")
运行结果提示错误
input your guess age: 23
Traceback (most recent call last):
File "f:/python/studyfile/guess.py", line 62, in <module>
elif guess_age > my_age:
TypeError: '>' not supported between instances of 'str' and 'int'
变量类型错误,因为input返回的结果默认为“str”类型,而my_age是"int"型,所以需要强制类型装换,修改代码为:
# -*- coding: utf-8 -*-
my_age = 29
guess_age = int(input("input your guess age: "))
if guess_age == my_age:
print("Congratulations, you got it !")
elif guess_age > my_age:
print("think bigger")
else:
print("think smaller")
八、表达式while循环
当条件为True时,while会一直循环下去,传说中的死循环。
# -*- coding: utf-8 -*-
count = 0
while True:
print("循环第%s次" % count)
count = count + 1
为了避免死循环,一定要设置循环结束条件,将上面程序修改,在while内部做循环限制
# -*- coding: utf-8 -*-
count = 0
while True:
print("循环第%s次" % count)
count = count + 1
if count == 100:
print("退出循环")
break
可以在while处设置循环条件,eg:老男孩视频,猜年龄,最多猜测三次,三次没猜对退出
# -*- coding: utf-8 -*-
real_age = 48
count = 0
while count < 3:
user_input = int(input("please input your guess:"))
if user_input == real_age:
print("Congratulations, you got it !")
break
elif user_input > real_age:
print("think smaller!")
else:
print("think bigger")
count = count + 1
else:
print("猜这么多次都不对,你个笨蛋.")

浙公网安备 33010602011771号