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')

原文地址:https://www.cnblogs.com/shy-kevin/p/11369247.html

时间: 2024-08-30 08:28:43

001_python变量,if,while的相关文章

前端面试合集

VUE 1.什么是 vue 生命周期 2.vue生命周期的作用是什么 3.第一次页面加载会触发哪几个钩子 4.简述每个周期具体适合哪些场景 5.created和mounted的区别 6.vue获取数据在哪个周期函数 7.请详细说下你对vue生命周期的理解? vue路由面试题 mvvm 框架是什么?vue-router 是什么?它有哪些组件 active-class 是哪个组件的属性?怎么定义 vue-router 的动态路由? 怎么获取传过来的值vue-router 有哪几种导航钩子?6.$ro

001_Python中的变量和字符串

1.Python“变量”更像“名字” 变量名就像我们现实社会的名字,把一个值赋值给一个名字时,Ta会存储在内存中,称之为变量(variable). 在大多数语言中,都把这种行为称为“给变量赋值”或“把值存在变量中”. 不过 Python与大多数其他计算机语言的做法稍有不同,Ta并不是把值存储在变量中,而更像是把名字贴在值的上边. 所以有些 Python程序员会说“ Python”没有“变量”,只有“名字”. 2.Python变量使用无需定义但需先赋值 在使用变量之前,需要对其先赋值. Pytho

Linux下修改环境变量PATH

1.什么是环境变量(PATH) 在Linux中,在执行命令时,系统会按照PATH的设置,去每个PATH定义的路径下搜索执行文件,先搜索到的文件先执行. 我们知道查阅文件属性的指令ls 完整文件名为:/bin/ls(这是绝对路径), 那你会不会觉得很奇怪:"为什么我可以在任何地方执行/bin/ls这个指令呢? " 为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变量 PATH 的帮助所致呀! 当我们在执行一个指令癿时候,举例

Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)

原文:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量) 用文本编辑工具打开用于启动Tomcat的批处理文件startup.bat,仔细阅读.在这个文件中,首先判断CATALINA_HOME环境变量是否为空,如果为空,就将当前目录设为CATALINA_HOME的值.接着判断当前目录下是否存在bin\catalina.bat,如果文件

JavaScript的进阶之路(二)函数简介,变量、作用域和内存问题

<h3>ECMAScript中函数不存在函数签名的概念,没有重载</h3><h3>无需指定返回值,可以在任何时候返回任何值.未指定返回值的函数,返回的是一个特殊的undefined值</h3> <script type="text/javascript"> function sayHi(){ console.log("Hi"); }; sayHi(); function sayName(name,age){

Linux下修改.bash_profile 文件改变PATH变量的值

Linux中含有两个重要的文件 /etc/profile和$HOME/.bash_profile 每当系统登陆时都要读取这两个文件,用来初始化系统所用到的变量,其中/etc/profile是超级用户所用,$HOME/.bash_profile是每个用户自己独立的,我们可以修改该文件来设置一些变量. 命令用法如下 $ cd (进入用户登陆目录) $ls –al .bash_profile(.bash_profile为隐藏文件,因此要用ls –a命令查找) $vi .bash_profile(用vi

linux安装maven及配置环境变量 配图

Maven 3.5.0 maven安装和环境变量的配置 1 下载 maven 链接:http://pan.baidu.com/s/1qXXjXfe 密码:r92r 2 解压安装包 tar zvxf apache-maven-3.5.0-bin.tar.gz 3  配置maven环境变量 vi  /etc/profile   编辑系统配置文件 #set Maven environmentexport MAVEN_HOME=/usr/local/software/dir-maven/apache-m

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

[转]表变量和临时表的比较

本文转自;http://www.cnblogs.com/CareySon/archive/2012/06/11/TableVariableAndTempTable.html 关于表变量是什么(和表变量不是什么),以及和临时表的比较让很多人非常困惑.虽然网上已经有了很多关于它们的文章,但我并没有发现一篇比较全面的.在本篇文章中,我们将探索表变量和临时表是什么(以及不是什么),然后我们通过使用临时表和表变量对其解密. 表变量 表变量在SQL Server 2000中首次被引入,那么,什么是表变量呢?