我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python3.5学习之旅——day1

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python3.5学习之旅——day1

本节内容:

1、Python介绍

2、Hello World程序   

3、变量\字符编码

4、用户输入

5、if-else语句

6、循环语句

 

一、Python介绍

Python是一种动态解释性的强类型定义语言,主要应用在云计算,WEB开发,科学运算、人工智能,系统运维和金融等领域。

1、Python的优缺点

优点:

  • 简单,易懂。
  • 开发效率高,Python具有非常强大的第三方库。
  • 高级语言。
  • 可移植性——开源本质。
  • 可扩展性——可以把一段关键代码运行地更快或希望某些算法不公开,可把部分程序用C或C++编写,然后在Python程序中使用。
  • 可嵌入性。

缺点:

  • 速度相对较慢。
  • 代码不能加密。如果项目要求源代码必须是加密的,则不能使用Python。
  • 线程不能利用多CPU问题。

2、Python解释器

当我们编写Python代码时,我们得到的是一个包含python代码的以.py为扩展名的文本文件,要运行代码,就要靠Python解释器来执行.py文件。

以下为几种常用的Python解释器。

  • CPython——使用最广的Python解释器

  • IPython

  • PyPy

  • Jython

  • IronPython

3、Python 2 与 3的区别

In summary : Python 2.x is legacy, Python 3.x is the present and future of the language

Python 3.0 was released in 2008. The final 2.x version 2.7 release came out in mid-2010, with a statement of extended support for this end-of-life release. The 2.x branch will see no new major releases after that. 3.x is under active development and has already seen over five years of stable releases, including version 3.3 in 2012, 3.4 in 2014, and 3.5 in 2015. This means that all recent standard library improvements, for example, are only available by default in Python 3.x.

具体而言,Python 3 相较 2 的优势体现在 3 支持 Unicode support,也就是说,在Python 3 中不必再为繁杂的字符编码而烦恼,例如 3 可以直接写中文!

还有一个不同之处就是某些库在 3 中有了变化,具体如下:

old new
_winreg winreg
             ConfigParser configparser
copy_reg copyreg
Queue queue
SocketServer socketserver
markupbase _markupbase
repr reprlib
test.test_support test.support

二、Hello World程序   

下面演示用Python编写helloworld程序,这里我使用的开发工具是pycharm。   

1 __author__ = 'Sunny Han'
2 print("Hello World!")

由此可见Python的简洁明了。

 

三、变量\字符编码 

1、变量——为了存放东西以便之后的调用

eg: 

name="han shuo"

 

这里的name为变量名,han shuo为变量name的值。

变量定义应遵循一定的规则;

  • 变量名只能是字母、下划线或数字的任意组合。
  • 变量的第一个字符不能是数字。
  • 关键字不能充当变量名:'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'.
  • 定义变量名一定要有一定的含义,尽量不要胡编乱造,比如说这里我们想定义一个变量来代表Jake的年龄,我们写变量名“age_of_Jake”要好过变量名“ageofjake”。

变量的赋值:

eg:

1 name="han shuo"
2 print("my name is",name)
3 name2=name
4 print(name2)
5 name="kobe"
6 print(name,name2)

以下为执行后的结果:

my name is han shuo

han shuo
kobe han shuo

 为什么name值改成kobe后name2没有变化呢?这是因为name2指向的是之前name的值“han shuo”,而不是name自身,故name值变化后,name2并不会发生相应的变化。

 注:python中没有常量的概念,若想表示常量,要将变量名全部大写。

        eg:PIE=3.14159

2、字符编码

 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)。ASCII主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。为了显示中文,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。

GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。

GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。

 显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)。

eg:如果是输入以下代码的话,会报错,因为默认的ASCII无法表示中文。

__author__ = 'Sunny Han'
name="你好,世界!"
print(name)

 

 所以此处要告诉Python解释器要用什么编码来执行源代码。如下:
# -*- coding: utf-8 -*-
__author__ = 'Sunny Han'
name="你好,世界!"
print(name)

 这样就能显示出结果了。

注释:

        当行注视:# 被注释内容

  多行注释:""" 被注释内容 """  (三引号)

 四、用户输入

 1、简单输入方法:

 
__author__ = 'Sunny Han'
username=input("username:")
password=input("password:")
print(username,password)

 输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

__author__ = 'Sunny Han'
import getpass
username=input("username:")
password=getpass.getpass("password:")

print(username,password)

 

 2、相对复杂一些的输入输出过程
 eg1:
__author__ = 'Sunny Han'
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)

 注意这里的age变量默认类型为字符串,假如将 age:%s改为age:%d(即整数类型),之前的age=input("age:")也应改为age=int(input("age:")),即将age变量强制转为整型变量。

具体如下:

name=input("name:")
age=int(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)

 

 接下来以同样的例子介绍另一种用户输入的方法,如下:
eg2:
name=input("name:")
age=input("age:")
job=input("job:")
salary=input("salary:")


info='''
-----------info of {_name}-----------
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
'''.format(_name=name,
       _age=age,_job=job,
       _salary=salary)
print(info)

 eg3:

__author__ = 'Sunny Han'
name=input("name:")
age=input("age:")
job=input("job:")
salary=input("salary:")
info='''
---------info of {0}----------
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
'''.format(name,age,job,salary)
print(info)

 

上例和eg1的执行结果是一样的。

五、if-else语句

 以下举两个例子来说明if-else语句的用法 
1、如何实验判断用户名和密码的正确与否,代码如下:
 
__author__ = 'Sunny Han'
_username="han"
_password="123456"

username=input("username:")
password=input("password:")
if username==_username and password==_password:               #and是“并”的意思,意思是当前后两个条件都成立的时候才成立
    print("Welcom user {name} login...".format(name=username))#在这里换行时会自动缩进,如果手动改成顶格,会报错“IndentationError"缩进错误
else:                                                         #所有代码如果自己的级别就是最高的,比如这里的else,那么就应该顶格写
    print("invalid username or password!")                   

 

 2、如何判断某人年龄代码如下:

__author__ = 'Sunny Han'
age_of_jake=56

guess_age=int(input("guess_age:"))#这里默认输入的类型为字符型变量,故要强制转换字符类型,将其变成整型变量
if guess_age<age_of_jake:
    print("think bigger!")
elif guess_age==age_of_jake:#这里的elif相当于C语言中的elseif
    print("yes,you got it.")
else:                          #尤其要记住在编写代码时,要在所有的if else elif 语句后面加上冒号:
    print("think smaller...")

 

六、循环语句 

 1、while循环语句

(1)先简单举一个while语句的例子,如下:

__author__ = 'Sunny Han'
count=0
while True:
    print("count:",count)
    count +=1
    if count==5:
        break

 代码运行结果如下:

我们可以看到上述代码实现了依次输出0到5的功能。

 

 (2)在之前猜年龄代码的基础上再加一个输入次数的限制,并用while语句实现,如下:
__author__ = 'Sunny Han'
age_of_jake=56
count=0    #计数器
while count<3:
    guess_age=int(input("guess_age:"))
    if guess_age<age_of_jake:
        print("think bigger!")
    elif guess_age==age_of_jake:
        print("yes,you got it.")
        break           #这里的break是结束循环,也就是说即便是没有输入够三次,也会结束循环,不会执行最后一个else语句
    else:
        print("think smaller...")
    count +=1        #相当于count=count+1

else:
    print("you have tried too many times! ")

 这里实现了只允许输入三次的限制,这里要注意break的用法和意义。

 如果说在以上基础上在加入一个环节——是否想继续猜年龄,我们可以进一步优化代码如下:
 
__author__ = 'Sunny Han'
age_of_oldboy=56
count=0
while count<3:
    guess_age=int(input("guess_age:"))
    if guess_age<age_of_oldboy:
        print("think bigger!")
    elif guess_age==age_of_oldboy:
        print("yes,you got it.")
        break
    else:
        print("think smaller...")
    count +=1
    if count==3:
        continue_confirm=input("do you want to keep guessing?")
        if continue_confirm!="n":
            count=0             #这里的令count重新等于0,就是说让代码重新回到其实部分(重新猜)
        else:
            break

 2、for循环语句

 (1)简单示例如下:
__author__ = 'Sunny Han'
for i in range(0,10,2): #这里的0代表起始点,10代表终止点,2代表步长(步长默认为1)
    print("loop",i)     #循环输出0,2,4,6,8

 (2)接下来我们举一个嵌套循环的例子,如下:

 
__author__ = 'Sunny Han'
for i in range(0,10): 
    print("---------",i)
    for j in range(5):        #这里和if else一样,一定记得在for语句后加冒号:
        print(j)

 上述代码实现了每输出一个i,都会输出5个j。

 3、continue语句

 这里我们利用一个简单的for语句,来练习使用continue语句。代码如下:
 
__author__ = 'Sunny Han'
for i in range(0,10):
   if i<5:
     print("loop",i)        #在这里如果i<5,会直接输出i
   else:
      continue              #相应的,当i增加到大于5的话,会执行continue语句,也就是会结束本次循环,而不是全部终止循环
   print("hehe..")

 对上述代码进行调试后发现,即便当i>5时,代码仍会继续进行循环,i=6,7,8,9,10直到走完全部循环。

 但若将这里的continue改为break,从调试结果中我们就很明显能看到当执行到i大于等于5时,就直接跳出整个循环了,而continue只是跳出本次循环,这就是continue语句和break语句的不同之处。
 
 
 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python3.5学习之旅——day1

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python3.5学习之旅——day1

本节内容:1、Python介绍2、Hello World程序   3、变量\字符编码4、用户输入5、if-else语句6、循环语句 一、Python介绍Python是一种动态解释性的强类型定义语言,主要应用在云计算,WEB开发,科学运算、人
2023-01-30

python学习之路—day1

变量:存储信息,日后被调用、修改操作.常量:固定不变的量,字母大小写。命名规则:1,、字母数字下划线组成2、命名具有代表意义的3、不能以数字开头,特殊符号开头4、不能以保留字命名,lg:for等5、命名一般不以中文命名6、命名一般以驼峰体形
2023-01-30

Python学习之旅(十)

字符串格式化有2种方法:一是用“%”,二是用format。转换标志:,默认右对齐,%后面加上“-”表示左对齐;“+”表示在转换值之前要加上正负号;“ ”(空白符)表示在正数前面保留空格;“0”表示转换值若位数不够用0填充。最小字段宽度(可选
2023-01-30

python的学习之旅

首先先介绍下本人,本人名叫杜邱,别名也叫故都的秋,网络工程专业毕业,现就职一家电子商务公司,已经三年了,起初从一个小小的网管做起,一台路由器,一台交换机,下面连着50几台电脑,三年过去了,慢慢的也在成长,装过监控,管过服务器,弄过网络,杀过
2023-01-31

python学习之旅(二)

Python基础知识(1)一、变量变量名可以由字母、数字、下划线任意组合而成。注意:1.变量名不能以数字开头;           2.变量名不能为关键字;           3.变量名尽量起有意义的,能够通过变量名知道代表的是什么。 二
2023-01-30

Python学习之旅(十四)

Python内置函数1、abs:取绝对值abs(-1)12、all:把序列中的每一个元素拿出来做布尔运算,都为真则返回True,如果序列中有None、0、“”、[]、{}、()则返回Falseall([1,23,0])False3、any:
2023-01-30

python学习之旅(十五)

一、装饰器decorator:本质上就是函数,可以增强函数的功能。定义起来虽然有点复杂,但使用起来非常灵活和方便1、不修改被装饰函数的源代码2、不修改被装饰函数的调用方式3、装饰函数对被装饰函数透明import functoolsdef l
2023-01-30

python学习之旅(十六)

1、可以把模块想象成导入Python以增强其功能的扩展2、任何程序都可以作为模块导入3、导入模块并不意味着在导入的时候执行某些操作,它们主要用于定义变量、函数和类等 #hello1.pydef hello(): print("Hell
2023-01-30

Python学习之旅(十一)

一、全局变量和局部变量局部变量:在函数内定义的变量,在函数内使用全局变量:在函数外定义的变量,在程序任何地方都可以使用1、全局变量与局部变量同名这时函数内部只调用局部变量,如果要调用全局变量需要在函数内加一句“global 同名变量”x=1
2023-01-30

Python学习之旅(三十三)

网络通信是两台计算机上的两个进程之间的通信,而网络编程就是如何在程序中实现两台计算机的通信P协议负责把数据从一台计算机通过网络发送到另一台计算机TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据包按顺序
2023-01-30

Python学习之旅(三十七)

程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。而如何定义数据的存储格式就是一个大问题。为了便于程序保存和读取数据,而且,能直
2023-01-30

Python学习之旅(二十四)

一、threadlocal在多线程环境下,每个线程都有自己的数据一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁在函数间一层层调用的时候,使用局部变量很麻烦,使用全局变量
2023-01-30

Python学习之旅(二十九)

一、PillowPIL(Python Imaging Library):提供了强大的图像操作功能,可以通过简单的代码完成复杂的图像处理,是Python平台事实上的图像处理库,支持Python 2.7以及更低的版本Pillow:在PIL基础上
2023-01-30

Python学习之旅(三十四)

UDP编程相对TCP,UDP则是面向无连接的协议使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包虽然用UDP传输数据不可靠,但它的优点是和TCP比,速度快,对于不要求可靠到达的数据,就可以使用UDP协议
2023-01-30

Python学习之旅(二十五)

正则表达式:检查一个字符串是否与某个模式匹配\d :匹配数字\w :匹配字母或数字. :匹配任意字符{n} :匹配n个字符{m,n} :匹配m到n个字符\s :匹配空格a|b :匹配a或b^ :匹配字符串开头$ :匹配字符串结尾* :匹配0
2023-01-30

Python学习之旅(三十二)

Python内置了turtle库,可以在计算机上绘图运动控制:1、画笔定位到坐标(x,y):turtle.goto(x,y)2、向正方向运动 distance 长的距离:turtle.forward(distance)3、向负方向运动 di
2023-01-30

Python学习之旅(三十八)

二、MySQLMySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。可以
2023-01-30

Android学习之旅--安装配置

Android学习之旅--安装配置 一、Android studio的安装与配置 1、Android studio的下载 下载地址:http://www.android-studio.org/index.php 2、安装:一直next即可(
2022-06-06

Python学习day1作业总结

为了以后更好更快速的复习,此博客记录我对作业的总结。对于基础作业,我认为最重要的是过程,至于实现是不是完美,代码是不是完美,虽然重要,但是作业过程中,用到的知识点是值得总结和整理的。1. 用户输入帐号密码进行登陆  2. 用户信息保存在文件
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录