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("猜这么多次都不对,你个笨蛋.")

 

posted @ 2020-09-10 13:26  薄小木的自动化进阶之路  阅读(108)  评论(0)    收藏  举报