001_python变量,if,while
Python介绍
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
计算机基础
cpu:
- 相当于人的大脑,运算与控制中心。
- 速度 飞机
内存:
- 暂时存储,供给CPU数据。
- 速度 高铁。成本高,断电即消失。
硬盘:
- 相当于电脑的数据库,存储着大量的数据,文件,音频文件。
- 速度 走。成本低
操作系统:
- 执行者,支配所有关系。windows,linux,mac...
python流行的原因
- 大量第三方库
- Diango
python的历史
- Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
- python 2x和3x在同一年诞生,2x是10月,3是12月
- python 2x:源码混乱,重复代码较多,冗余。
- python 3x: 源码规范,崇尚优美、清晰,简单
python 2x,python 3x的区别
1.print方法有区别
python 3x print('内容')
python 2x print()
或者print '内容'
2.编码方式不一样
python 3x 默认编码:utf-8
python 2x 默认编码: ascii 只包含英文字母和特殊字符以及数字
不支持中文
解决方式:
在头部增加
# -*- coding: utf-8 -*-
3.input不同
python 2x: raw_input()
python 3x: input()
开发语言的分类
解释型:当程序运行时,将代码一行一行的解释成二进制,再运行。
优点:排错快,开发效率高,可以跨平台
缺点:执行效率相对低
典型:python
编译型:将代码一次性全部编译成二进制,然后运行。
缺点:排错慢,开发效率低,不能跨平台(操作系统)。
优点:执行效率高
典型:C
python的种类
CPython 默认解释器,转换为字节码,再转换为c语言010101...
IPython
PyPy 一次性全部转化成二进制,执行效率高。
Jython 把Python代码编译成Java字节码执行
IronPython
虽然解释器不同,但是写python代码的规则还是统一的。
运行第一个python程序
如果想要windows电脑同时有2个python环境,Python2.7和Python3.5
先安装python2.7
1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python27
勾选添加环境变量
再安装python3.5选择自定义安装,勾选添加环境变量
安装路径设置为C:\Python35
进入目录C:\Python27将python.exe更改为python2.exe
打开windows命令行模式
输入python2就是2.7版本
新建一个test.py文件,内容如下
print('你好,世界')
使用命令行方式
我的代码路径在E:\python_script\day1进入目录,执行代码
使用python2,执行执行报错
因为默认python2x编码是ascii,不支持中文在第一行添加# -*- coding: utf-8 -*-
再次执行,就可以了
!
如果python安装完成之后,发现执行python有问题时
可以把所有python版本卸载,重新安装一次,确保环境变量已经删除,文件后缀是可以显示的。
变量
变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用。
变量定义的规则:
- 变量必须由数字,字母,下划线任意组合。
- 变量不能以数字开头。
- 变量不能是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'] - 变量要具有可描述性。
- 变量不能是中文。
- 变量不能太长。
- 官方推荐:
#驼峰体
AgeOfOldboy = 56
NumberOfStudents = 100
#下划线
age_of_oldboy = 56
number_of_students = 80
一般推荐使用第2种,也就是下划线的方式。
下面几个例子,判断变量名是否合法
w__ = 22
e_a_ = '太白'
e$ = 'fdsa'
-_ = '15'
2g = 33
__ = '老村长'
3,4,5行的变量,是不合法的,其他的都是合法的。
赋值计算
先计算等号右边的,把计算的值赋值给左边的
python是解释型语言,代码是一行一行执行
后面的变量会覆盖前面的。
age1 = 12
age2 = age1
age3 = age2
age2 = 6
print(age1,age2,age3)
执行输出12 6 12看一个图
age1~3的值,存储在内存中。当age2等于6时,age2值的指向就发生了变化,值为6
常量
常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量
默认全部大写的变量,称之为常量。
CITY_LIST = 'beijing'
注释
为什么有注释?
帮助你记起之前的代码,或者帮助别人看懂你的代码
不宜多,精就行
单行注释: #被注释内容
多行注释: '''被注释内容''' 或者 """被注释内容"""
#定义一个变量
name1 = "taibai"
'''
虞美人·碧苔深锁长门路
清代:王国维
碧苔深锁长门路。总为蛾眉误。自来积毁骨能销。何况真红一点臂砂娇。
妾身但使分明在。肯把朱颜悔。从今不复梦承恩。且自簪花坐赏镜中人。
'''
基础数据类型
初始int(整型)
在32位机器上,整数的位数为32位,取值范围为-2 ** 31~2 ** 31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2 ** 63~2 ** 63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
注意:在Python3里不再有long类型了,全都是int长整型
字符串类型(str)
在Python中,加了引号的字符都被认为是字符串!
msg = "My name is xiao,I'm 22 years old!"
num = '12'
这种会出错
sg = "My name is xiao,I"m 22 "years old!"
双引号,只看2头的,从左到右
一般3个引号的,用到多行的场景,有行号符的。一行很少用3个引号的
shi = '''
马汗踏成泥,朝驰几万蹄。
雪中行地角,火处宿天倪。
塞迥心常怯,乡遥梦亦迷。
那知故园月,也到铁关西。
'''
print(shi)
执行输出
马汗踏成泥,朝驰几万蹄。
雪中行地角,火处宿天倪。
塞迥心常怯,乡遥梦亦迷。
那知故园月,也到铁关西。
3个单引号,没有赋值,是用来注释的
比如上面的唐诗《虞美人·碧苔深锁长门路》
字符串只能相加和相乘
相加
n1 = '她的名字是'
n2 = '南宫紫菱'
n3 = n1 + n2
print(n3)
执行输出
她的名字是南宫紫菱
相乘
n1 = '我好爱你!'
print(n1 * 3)
执行输出
我好爱你!我好爱你!我好爱你!
布尔值(True,False)
布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断
print(1 > 2)
执行输出
False
返回false
布尔值是不带引号的
print(1 > 2 and 3 < 4 or 4 > 5)
执行输出
False
布尔值判断时,如果出现false,结果返回false
查看数据类型
使用type()方法
n1 = 'nan'
n2 = False
n3 = 'False'
print(type(n1))
print(type(n2))
print(type(n3))
执行输出
<class 'str'>
<class 'bool'>
<class 'str'>
用户交互 input
input出来的数据类型,都是字符串
name = input('请输入你的名字: ')
age = input('请输入你的年龄: ')
hobby = input('请输入你的爱好: ')
s = '我的名字是' + name + '\n我的年龄是' + age + '\n我的爱好是' + hobby
print(s)
执行效果
if语句
第一种结构
if 条件:
结果
第二种结构
if 条件:
结果
else:
结果
举例
if 3 > 2:
print(666)
执行输出
666
第三种结构
if 条件1:
结果1
elif 条件2:
结果2
elif 条件3:
结果3
举例
choice = input('请输入你猜的数字:')
if choice == '2':
print('我请你吃饭')
elif choice == '6':
print('免一周作业')
elif choice == '3':
print('一起去玩耍')
执行输出
第4种结构
if 条件1:
结果1
elif 条件2:
结果2
elif 条件3:
结果3
else:
结果4
举例
choice = input('请输入你猜的数字:')
if choice == '2':
print('我请你吃饭')
elif choice == '6':
print('免一周作业')
elif choice == '3':
print('一起去玩耍')
else:
print('输入错误')
执行输出
== 表示做比较
= 表示赋值
第5种结构
if 条件:
if 条件:
结果
else:
结果
else:
结果
只要需求存在,就可以一直嵌套if
举例
age = int(input('请猜我的年龄:'))
if True:
if age == 18:
print('恭喜你猜对了')
else:
print('这都看不出来...')
else:
print('输入错误')
执行输出
字符串之间不能比较大小,只能比较相等
int ---> str str(12) 转换成字符串,使用str()
str ---> int int(12) 全部由数字组成的字符串才能转化为数字
while循环
用来执行重复的代码
while True:
print('痒')
print('凉凉')
print('体面')
print('社会摇')
执行输出
痒
凉凉
体面
社会摇
...
另外一个例子
print(222)
while True:
print(111)
print(333)
print(444)
执行输出
222
111
333
111
333
....
444永远不会执行
跳出循环的条件:
- .改变条件
- breck
标志位flag
从1打印到100
#标志位
flag = True
#初始值
count = 1
while flag:
#第一次,打印初始值。之后打印自增值
print(count)
#循环一次,自增1
count = count + 1
#当等于100时,循环终止
if count == 100:
#打印100
print(count)
flag = False
执行输出
1
2
3
...
100
第2种写法
#初始值
count = 1
while count < 101:
#第一次,打印初始值。之后打印自增值
print(count)
#循环一次,自增1
count = count + 1
执行输出,效果同上
break:结束循环
while True:
print(111)
print(222)
break
print(333)
执行输出
111
222
遇到breck,终止循环,下面的代码不执行
continue:结束本次循环,继续下一次循环。
continue 相当于见底了
while True:
print(111)
print(222)
continue
print(333)
执行输出
111
222
....
33永远不会执行,为什么呢?遇到continue时,下面代码不执行,继续执行下一次循环,由于循环无法终止,所以最后一行代码,始终不会执行。
使用breck方式,打印1到100
#初始值
count = 1
while True:
#第一次,打印初始值。之后打印自增值
print(count)
#循环一次,自增1
count = count + 1
if count == 101:
break
执行输出1到100
执行输出1到100
相关练习题
使用while循环输入 1 2 3 4 5 6 7 8 9 10
count = 0
while count < 10:
count += 1
if count == 7:
continue
print(count)
求1-100的所有数的和
sum = 0
count = 1
while(count<=100):
sum += count
count += 1
print(sum)
输出 1-100 内的所有奇数
count = 1
while(count<=100):
if count %2 != 0:
print(count)
count += 1
输出 1-100 内的所有偶数
count = 1
while(count<=100):
if count %2 == 0:
print(count)
count += 1
求1-2+3-4+5 ... 99的所有数的和
count = 1
sum = 0
while(count<=99):
#奇数
if count %2 != 0:
sum += count
else :
sum -= count
count += 1
print(sum)
用户登陆(三次机会重试)
logins = 0
while True:
if logins == 3:
break
username = input("请输入用户名:")
password = input("请输入密码:")
if username == 'kevin' and password == '123456':
print('ok')
else:
logins += 1
print('error')
001_python变量,if,while的更多相关文章
- 001_python变量命名规范(待实践一遍)
参考: http://blog.sina.com.cn/s/blog_62f28d560100xv85.html https://my.oschina.net/leejun2005/blog/3871 ...
- 6 小时 Python 入门
6 小时 Python 入门 以下操作均在 Windows 环境下进行操作,先说明一下哈 一.安装 Python 1.官网下载 Python 进入官网(https://www.python.org), ...
- In-Memory:在内存中创建临时表和表变量
在Disk-Base数据库中,由于临时表和表变量的数据存储在tempdb中,如果系统频繁地创建和更新临时表和表变量,大量的IO操作集中在tempdb中,tempdb很可能成为系统性能的瓶颈.在SQL ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- Shell特殊变量
$ 表示当前Shell进程的ID,即pid $echo $$ 运行结果 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数 ...
- Java多线程基础——对象及变量并发访问
在开发多线程程序时,如果每个多线程处理的事情都不一样,每个线程都互不相关,这样开发的过程就非常轻松.但是很多时候,多线程程序是需要同时访问同一个对象,或者变量的.这样,一个对象同时被多个线程访问,会出 ...
- Js 变量声明提升和函数声明提升
Js代码分为两个阶段:编译阶段和执行阶段 Js代码的编译阶段会找到所有的声明,并用合适的作用域将它们关联起来,这是词法作用域的核心内容 包括变量声明(var a)和函数声明(function a(){ ...
- PHP源码分析-变量
1. 变量的三要素变量名称,变量类型,变量值 那么在PHP用户态下变量类型都有哪些,如下: // Zend/zend.h #define IS_NULL 0 #define IS_LONG 1 #de ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
随机推荐
- threejs 鼠标移动控制模型旋转
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- CTR学习笔记&代码实现3-深度ctr模型 FNN->PNN->DeepFM
这一节我们总结FM三兄弟FNN/PNN/DeepFM,由远及近,从最初把FM得到的隐向量和权重作为神经网络输入的FNN,到把向量内/外积从预训练直接迁移到神经网络中的PNN,再到参考wide& ...
- C. Beautiful Regional Contest
用前缀和写一直wa.. 思路:让金牌和银牌最少,通多增加铜牌的方式来扩大总奖牌的个数. #include<bits/stdc++.h> using namespace std; map&l ...
- H - Tempter of the Bone DFS
小明做了一个很久很久的梦,醒来后他竟发现自己和朋友在一个摇摇欲坠的大棋盘上,他们必须得想尽一切办法逃离这里.经过长时间的打探,小明发现,自己所在的棋盘格子上有个机关,上面写着“你只有一次机会,出发后t ...
- 如何在Ubuntu 18.04上安装Nginx
Nginx功能之强大,想必大家比我更清楚. 百度百科:Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔 ...
- react-i8n
1. 在项目中安装 npm install react-intl --save 2.兼容Safari各个版本需要安装intl npm install intl --save 3.编写语言包 1.)新建 ...
- selenium 窗口的切换
窗口切换需要用到一个关键词:句柄,每个窗口唯一的标识 获取句柄的方法:driver.getWindowHandle(); 下面的例子是点击京东页面,跳转到京东手机页面,然后关闭京东页面 driver. ...
- pytorch 中序列化容器nn.Sequential
按下图顺序搭建以及执行
- SpringBoot【新手学习记录篇】
1. 启动方式: 在idea中的application.java右键run as 命令行进入项目目录,使用命令 mvn spring-boot:run 使用mvn install进行打包,然后进入ta ...
- PHP中的11个魔术方法
1.__get.__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的 __get( $property ) 当调用一个未定义的属性时访问此方法__set( $property ...