Python 第一课笔记
本节内容
- Python介绍
- Python类型
- 安装
- Hello World程序
- Pycham安装
- 变量
- 字符编码
- 注释
- 用户输入
- 格式化输出
- 模块初识
- 表达式if ...else语句
- 表达式for 循环
- break and continue
- 表达式while 循环
1.python介绍
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
目前Python主要应用领域:
- 云计算: 云计算最火的语言, 典型应用OpenStack
- WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
- 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
- 图形GUI: PyQT, WxPython,TkInter
2.Python 是一门什么样的语言?
编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每个分类代表什么意思呢,我们一起来看一下。
编译和解释的区别是什么?
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的. 这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
编译型vs解释型
编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
python是解释型
3.python 安装
Windows
1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python27
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python27,切记前面有分号
Linux ,Mac
无需安装,原装Python环境 ps:如果自带2.6,请更新至2.7
4、Hello World程序的两种方法
在windows下执行
1、编辑器里输入,不用编译
print("Hello World!") 直接就可以运行

2、可以存成一个程序再运行
存成一个文本,新建一个.py文件。到cmd中执行

运行脚本 python Hello.py

在linux 下创建一个文件叫hello.py 并输入
print("Hello World!")
执行前需给予 hello.py 执行权限,chmod 755 hello.py
#!/usr/bin/env python print "hello,world"
#!/usr/bin/env python #可写可不写
要是把代码变成一个可执行程序,必须在第一行声明解释器是什么
这个声明有两种写法
#!/usr/bin/env python #第一种写法 #!/usr/bin/python #第二种写法
env是找环境变量 ,到整个系统里找一个叫python的环境变量
第二种是写死了就找/usr/bin/python目录下的文,如果装了3.5,仍然用的是系统原装2.7版本的python不好,不要用这个
5、Pycham安装



进入项目,修改模板【view】——》【Toolbar】
写好程序运行程序,右键【run】
右运行后自动保存
6、变量
什么是变量,用来存东西的,后面要调用的,变量存在内存里,
name = "rainbow"
变量名,给变量赋值
name = "rainbow" print("my name is ",name)
以下代码:运行结果【my name is rainbow rainbow】
name = "rainbow" name2=name
print("my name is ",name,name2)
以下代码运行结果
my name is rainbow rainbow
Paoche ge rainbow
name = "rainbow"
name2=name
print("my name is ",name,name2)
name="Paoche ge"
print(name,name2)
实际name2只是向name问路,自己指向内存地址,而不是指向name
变量定义的规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
变量名要有含义
复杂的变量名用下划线区分,或者驼峰法表示
gf_of_oldboy="Amy"
GfOfOldboy="lala"
如何定义常量呢,不支持常量,但是想表示的话
变量名大写,表示常量
PIE=3.14 #不应该改,但是可以改而已,尽量不改
7、字符编码
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
用0和1表示数字,通过1010组合表示
128 64 32 16 8 4 2 1
1 1 1 1 1 1 1 1
二进制是计算机中能表示的最小单位,
一个二进制位bit
8 4 2 1 的规律,之前所有数字之和加1,也是2的n次方
8bit=1byte字节
1024byte=1kbyte
1024kbyte=1mbyte
1024mbyte=1gb
1024gb=1T
任意数字要用一个bit表示,8个字节表示,
字符编码把二进制和字母转换
ASCII码,最多用8位表示一个字节,8位表示255个符号
关于中文
为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。
从128到255留给中文等做扩展
GB2312——1980年 (7445个字符)
GBK——1995年 (2W+个字符)
GB18030——2000年 (27484个字符)
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,
规定所有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
UTF-8可变长度的英文ASCII码格式
Unicode占2个字节16位、ASCII占1个字节8位、UTF-8中文占3个字节
8、注释
#单行注释
'''
多行注释
1行
2行
3行
4行
5行
6行
7行
8行
'''
#号单行指数
‘’‘多行注释‘’‘ 三个单引号或者三个双引号
msg='''
1、aaaaaaaaaaaa
2、bbbbbbbbbbbb
3、cccccccccccc
4、555555555555 '''
print(msg)
【运行结果】
1、aaaaaaaaaaaa
2、bbbbbbbbbbbb
3、cccccccccccc
4、555555555555
9、用户输入
input用户交互
username=input("输入用户名:")
pwd=input("输入密码:")
print(username,pwd)
输入用户名:阿斯蒂芬
输入密码:asdf
阿斯蒂芬 asdf
10.格式化输出
name=input("name")
age=input("age")
job=input("job")
Salary=input("Salary") info='''
---------Info of '''+ name +'''-------------
Name:'''+ name +'''
Age:'''+ age +'''
job:'''+ job +'''
Salary:'''+ Salary +'''
-------------------------------
'''
print(info)
【运行结果】
name kaka
age 18
job IT
Salary 20000 ---------Info of kaka-------------
Name: kaka
Age: 18
job: IT
Salary: 20000
-------------------------------
另外一种写法
name=input("name")
age=input("age")
job=input("job")
Salary=input("Salary") info='''
---------Info of %s-------------
Name:%s
Age:%s
job:%s
Salary:%s
-------------------------------
'''%(name,name,age,job,Salary)
print(info)
【运行结果】
namenono
age19
jobart
Salary15000 ---------Info of nono-------------
Name:nono
Age:19
job:art
Salary:15000
-------------------------------
%s是占位符,代表string
%d是数字类型,帮助验证输入的数据类型是否正确
%f浮点,可以理解为小数
name=input("name")
age=input("age")
job=input("job")
Salary=input("Salary") info='''
---------Info of %s-------------
Name:%s
Age:%d
job:%s
Salary:%s
-------------------------------
'''%(name,name,age,job,Salary)
print(info)
【运行结果】报错
namebaby
age34
jobshowgirl
Salary30000
Traceback (most recent call last):
File "D:/Python/s014/Day1.py", line 16, in <module>
'''%(name,name,age,job,Salary)
TypeError: %d format: a number is required, not str
调试状态
name=input("name:")
age=input("age:")
#打印一个变量的数据类型
print(type(age))
job=input("job:")
Salary=input("Salary:")
运行结果,默认输入的都是字符串,需要强行转换一下
name:aaaa
age:33
<class 'str'>
job
强制转换,并打印
name=input("name:")
age=int(input("age:"))
#打印一个变量的数据类型
print(type(age),type(str(age))) job=input("job:")
Salary=input("Salary:")
[运行结果]
name:kiwi
age:18
<class 'int'> <class 'str'>
job:
第二种格式输出,格式化拼接
name=input("name:")
age=int(input("age:"))
job=input("job:")
Salary=input("Salary:") info2='''
---------Info of {_name}-------------
Name: {_name}
Age: {_age}
job:{_job}
Salary:{_Salary}
-------------------------------
'''.format(_name=name,
_age=age,
_job=job,
_Salary=Salary
)
print(info2)
【运行结果】
name:nana
age:36
job:IT
Salary:50000 ---------Info of nana-------------
Name: nana
Age: 36
job:IT
Salary:50000
-------------------------------
第三种方式的拼接
name=input("name:")
age=int(input("age:"))
job=input("job:")
Salary=input("Salary:") info3='''
---------Info of {0}-------------
Name: {0}
Age: {1}
job:{2}
Salary:{3}
-------------------------------
'''.format(name,age,job,Salary) print(info3)
【运行结果】
name:pink
age:67
job:study
Salary:12345 ---------Info of pink-------------
Name: pink
Age: 67
job:study
Salary:12345
-------------------------------
11、初识模块
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。
引用的时候必须把模块导入到程序中
import getpass
2
3
username=input("输入用户名:")
pwd=getpass.getpass("输入密码:")
print(username,pwd)
运行结果不正确,结论是Pycharm中getpass不好用,只能在cmd中执行
表达式if ...else语句
没有大括号,必须有缩进
_name="alex"
_password="abc123" username=input("输入用户名:")
pwd=input("输入用户名:") if _name==username and _password==pwd:
print("Welcome user {name} ,login......".format(name=username))
else:
print("invalid username or paddword!")
【输出结果1】
输入用户名:aa
输入用户名:asdf
invalid username or paddword!
【输出结果2】
输入用户名:alex
输入用户名:abc123
Welcome user alex ,login......
猜年龄小游戏
age_of_old_boy=56 guessage=int(input("guess age:")) if guessage==age_of_old_boy:
print("Yes,you got it!")
elif guessage > age_of_old_boy:
print("Too old")
else:
print("Too young")
【运行结果】
guess age:56
Yes,you got it!
guess age:1
Too young
guess age:59
Too old
while循环
count=0 #添加一个计数器 while True: #永远成立,永远执行
print(count) count+=1 #循环一次自增加1
……
859725
859726
859727
859728
859729
859730
859731
859732
859733
859734
859735
859736
859737
859738
859739
859740
859741
859742
859743
859744
859745
859746
859747
859748
859749
859750
859751
859752
859753
859754
859755
859756
859757
859758
859759
859760
859761
859762
859763
859764
859765
859766
859767
859768
859769
859770
859771
859772
859773
859774
859775
859776
859777
859778
859779
859780
859781
859782
859783
859784
859785
859786
859787
859788
859789
859790
859791
859792
859793
859794
859795
859796
859797
859798
859799
859800
859801
859802
859803
859804
……
循环猜年龄
age_of_old_boy=56 count = 0
while count < 3:
guessage=int(input("guess age:")) if guessage==age_of_old_boy:
print("Yes,you got it!")
break
elif guessage > age_of_old_boy:
print("Too old")
else:
print("Too young")
count += 1 else:
print("too meny times you have try,fuck off...")
guess age:57
Too old
guess age:23
Too young
guess age:99
Too old
too meny times you have try,fuck off...
表达式for循环
for i in range(10):
print("loop:",i)
【运行结果】
loop: 0
loop: 1
loop: 2
loop: 3
loop: 4
loop: 5
loop: 6
loop: 7
loop: 8
loop: 9
以上程序用for的实现
age_of_old_boy=56 for i in range(3):
guessage=int(input("guess age:")) if guessage==age_of_old_boy:
print("Yes,you got it!")
break
elif guessage > age_of_old_boy:
print("Too old")
else:
print("Too young")
else:#正常走完流程的时候执行else,如果上面语句break不执行此句
print("too meny times you have try,fuck off...")
【运行结果一样】
guess age:67
Too old
guess age:33
Too young
guess age:56
Yes,you got it!
【程序】隔一个打一次
#跳着打印,每隔一个打一次
for i in range(0,10,2):#从0开始,到10结束,步长是2
print("loop:",i)
【运行结果】
loop: 0
loop: 2
loop: 4
loop: 6
loop: 8
【打印奇数】
for i in range(1,10,2):#从0开始,到10结束,步长是2
print("loop:",i)
loop: 1
loop: 3
loop: 5
loop: 7
loop: 9
continue、break和exit()
age_of_old_boy=56 count = 0
while count < 3:
guessage=int(input("guess age:")) if guessage==age_of_old_boy:
print("Yes,you got it!")
break
elif guessage > age_of_old_boy:
print("Too old")
else:
print("Too young")
count += 1
if count==3:#询问是否退出,不想退出继续循环
continue_or_not=input("continue play?")
if continue_or_not != 'n':
count=0#清空计数器,重新来过
else:
print("too meny times you have try,fuck off...")
1、continue是结束本次循环跳到下一个循环
#continue的用法
for i in range(0,10):#从0开始,到10结束
if i < 5 :
print("loop:",i)
else:
continue
print("hehe....")#
loop: 0
hehe....
loop: 1
hehe....
loop: 2
hehe....
loop: 3
hehe....
loop: 4
hehe....
程序打上断点都
*******continue是跳出本次循环,继续到下次循环,**********
*******break是结束整个循环***************************
2、break是结束当前循环层
for循环嵌套
for i in range(10):
print("*******外循环次数**********",i)
for j in range(10):
print("....内循环次数....",j)
if j > 5:
break #退出本次循环,而不是外层循环
运行结果
*******外循环次数********** 0
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6
*******外循环次数********** 1
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6
*******外循环次数********** 2
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6
*******外循环次数********** 3
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6
*******外循环次数********** 4
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6
*******外循环次数********** 5
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6
*******外循环次数********** 6
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6
*******外循环次数********** 7
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6
*******外循环次数********** 8
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6
*******外循环次数********** 9
....内循环次数.... 0
....内循环次数.... 1
....内循环次数.... 2
....内循环次数.... 3
....内循环次数.... 4
....内循环次数.... 5
....内循环次数.... 6

Python 第一课笔记的更多相关文章
- Elasticsearch7.X 入门学习第一课笔记----基本概念
原文:Elasticsearch7.X 入门学习第一课笔记----基本概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...
- <-0基础学python.第一课->
初衷:我电脑里面的歌曲很久没换了,我想听一下新的歌曲,把他们下载下来听,比如某个榜单的,但是一首一首的点击下载另存为真的很恶心 所以我想有没有办法通过程序的方式来实现,结果还真的有,而且网上已经有有人 ...
- sql第一课笔记
这是我看了imooc的视频教程之后重新写的笔记. 虽然之前也是学习过SQL Server数据库,但是也是忘记得差不多了.现在重新捡起来,安装一次数据库练习,使用的是mysql. 第一课是最简单的创建, ...
- python第一课——关于python的一些概念
day01(上午): 1.学习方法(建议): 1).不要依赖于我的视频,绝对不要晚上将视频全部在过一遍 2).上课不要记笔记,而且不要用纸质的笔记本去整理笔记 3).不要只看不敲,代码方面我们需要做到 ...
- PHP第一课笔记
打算以后学习PHP,花3个月时间学会它,自己为自己加油.每天坚持学习,第一天感觉良好,没开始写,所以不敢觉难,在难也学,加油,me!! PHP笔记记录(2014.7.27) ★web开发的介绍 1.动 ...
- Python第一课
一.模块的常用方法 __name__ #主模块name值main __file__ #文件所在的路径+文件名 __doc__ #文件级别的注释 二.函数 参数 参数默认值 可变参数 ...
- Python 第二课笔记
1.模块初识 Python标准库和第三方库, 写好的功能封装好,起个名字,就是模块也叫库,直接导入就能用了. 标准库就是不需要安装,就能够导入的库 第三方库必须下载,安装才能使用的库. 1.1 两个标 ...
- python 第一课 helloworld
#!/usr/bin/env python #-*-coding:utf-8-*- #以上是配置编写环境的开始 #第一行env表示运行当前环境变量内的python版本(2.x or 3.x) #第二行 ...
- python第一课--基础知识
python简介 Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的 ...
随机推荐
- 给Activity切换加入动画
在startActivity或finish()后,调用overridePendingTransition方法,可以加入动画效果.例如: 使用Android自带的淡入淡出:android.R.anim. ...
- Android数据存储汇总
1.sharedpreference,存储简单的信息,比如用户名,密码 package com.google.datastore.sharep; import android.app.Activity ...
- phper談談最近重構代碼的感受(3)
这篇文章本来该和同一系列的文章一起写的,因为最近换工作的缘故滞后了.重构是非常细碎的叠加,有很多值得注意的地方. 1.消灭过多的临时变量. 有时候过多的无意义的临时变量,真心让人抓狂,特别是过了比较长 ...
- 【Zookeeper】源码分析之持久化--FileSnap
一.前言 前篇博文已经分析了FileTxnLog的源码,现在接着分析持久化中的FileSnap,其主要提供了快照相应的接口. 二.SnapShot源码分析 SnapShot是FileTxnLog的父类 ...
- hash实现锚点平滑滚动定位
一.科普时间 hash hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分). location.hash=anchorname. 锚点 锚点是网页制作中超级链接 ...
- java基础IO流综合加习题
IO流初学者在学习时都有一点迷糊,今天我们就讲讲IO流,希望通过讲解可以帮助大家 IO流分为字节流,字符流,缓冲流.我们只要记住这三个就可以了. 1*字节流有:字节输入流(FileInputStrea ...
- openstack私有云布署实践【9.2 Glance镜像管理(办公网环境)】
首先登录controller1创建glance数据库,并赋于远程和本地访问的权限. mysql -u root -p CREATE DATABASE glance; GRANT ALL ...
- 第一百二十九节,JavaScript,理解JavaScript库
JavaScript,理解JavaScript库 学习要点: 1.项目介绍 2.理解JavaScript库 3.创建基础库 从本章,我们来用之前的基础知识来写一个项目,用以巩固之前所学.那么,每个项目 ...
- [CSS3备忘] transform animation 等
一些CSS不经常用就会忘记,好吧,现在整理再学习一下,也留做备忘,方便以后查看... perspective的理解: 1.数值越小,用户与3D空间Z平面距离越近,视觉效果更令人印象深刻(比如看电影,越 ...
- 将List 中的ConvertAll的使用:List 中的元素转换,List模型转换, list模型转数组
一,直接入代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using S ...