PYTHON学习之路_PYTHON基础(1)
学习内容:
1、Python介绍
2、Python程序初接触和变量
3、Python用户交互
4、Python数据类型
5、Python循环if...(elif)...else
6、Python循环while...else
7、Python循环for...else
8、Python循环中断break和continue
9、Python实例
一、Python介绍
1)python优缺点
先看优点:
- Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
- 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
- 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
- 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
- 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
再看缺点:
- 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.1s,用Python是0.01s,这样C语言直接比Python快了10s,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
- 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
- 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。
二、Python程序初接触和变量
print (“Hello,world!”)#第一个python程序
b=2
c=3
print (b,c) #变量赋值
b=22
print (b,c) #变量指向内存地址
name="spider"
print (name) #变量赋值(字符串)
蜘蛛 = "spider" #python2与python3区别之一
print (蜘蛛)
三、Python用户交互
1)input及raw_input
python2中raw_input即为python3中的input(用法一致)
python2中input 慎用
2)input用法及参数传递方式:
name = input('Name:')
age = input('Age:')
print (type(age))
job = input('Job:')
salary = input('Salary:') info3='''
-----information of info3 {0}
Name:{0}
Age:{1}
Job:{2}
Salary={3}
'''.format(name,age,job,salary) print (info3) info2='''
------information of info2 {_name}------
Name:{_name}
Age :{_age}
Job :{_job}
salary:{_salary}
''' .format(_name=name,
_age=age,
_job=job,
_salary=salary) print (info2)
info1 = '''
-------information of info1 %s-------
Name:%s
Age :%s
Job :%s
Salary :%s
''' %(name,name,age,job,salary) print (info1) info='''
---------information of info ''' + name +'''--------
Name:''' + name + '''
Age :''' + age + '''
Job :''' + job + '''
Salary :''' + salary print (info)
四、Python数据类型及字符编码格式
1)数据类型
数字int 浮点f 字符串s bool:Ture和False
2)字符编码
ASCII :American Standard Code for Information Interchange ,美国标准信息交换代码 占1byte
GB2312:1980年诞生,支持7000个中文,占2bytes
GBK:1995年诞生,支持2万个中文,占2bytes
GB18030:2000年诞生,支持蒙、藏、维等字符,支持2.7万文字,占2bytes
注:以上均向下兼容;
后来unicode诞生,又叫万国码、统一码,支持以上格式,兼容他国语言,占2bytes
由于资源浪费,UTF-8诞生,可变长度的unicode,ASCII中的内容占1byte,欧洲的字符占2bytes,东亚的字符占3bytes(赤裸裸的剥削)
五、Python循环if...(elif)...else
#密文密码输入 getpass模块 pycharm下无法实现,在linux系统下可以实现
import getpass
''' #输入用户名和密码正确欢迎,错误返回错误消息
_username = 'spider'
_password = '123' username = input("请输入用户名:")
#password = getpass.getpass("请输入密码:") #密文输入
password= input("请输入密码:")
if username == _username and password == _password:
print ("Welcome user {a} login...".format(a=username))
else:
print ("invalid username or password") print (username,password)
'''
六、Python循环while...else
Age_of_oldboy = 78 #猜数字,对了打印信息,最多猜三次,都错误返回信息
count = 0
while count<3:
guess_age = int(input ("gusee oldboy's age:")) if guess_age == Age_of_oldboy:
print ("Yes,you got it!")
break
elif guess_age > Age_of_oldboy:
print ("You are wrong,guess smaller...")
else:
print ("You are wrong,guess bigger!") count +=1
else:
print ("you have tried too many times.. Please go out!")
七、Python循环for...else
Age_of_oldboy = 38 #猜数字,对了打印信息,最多猜三次,都错误返回信息 for count in range (3):
guess_age = int(input ("gusee oldboy's age:")) if guess_age == Age_of_oldboy:
print ("Yes,you got it!")
break
elif guess_age > Age_of_oldboy:
print ("You are wrong,guess smaller...")
else:
print ("You are wrong,guess bigger!")
八、Python循环中断break和continue
1)break跳出该循环;continue跳出本次循环
举例1:
for i in range(0,10): #i<5则继续向下执行,打印j,i>5则不向下执行,不打印j
print ("---------",i)
if i> 5 :
continue
for j in range(0,10):#j<5则打印j,j>5则跳出该循环
print (j)
if j > 5:
break
举例2:
for i in range(0,10): #当i>5,跳出循环,不向下执行,当i<5,向下执行
print ("---------",i)
if i> 5 :
break
for j in range(0,10):
print (j)
if j > 5:
continue
九、Python实例
用户登录系统
PYTHON学习之路_PYTHON基础(1)的更多相关文章
- PYTHON学习之路_PYTHON基础(10)
学习内容: Python进程与线程 1.线程及线程类 2.线程守护 3.线程等待 4.线程锁 5.信号量 6.timer用法 7.队列 8.事件驱动 9.生产者消费者模型 10.进程及进程同步 11. ...
- PYTHON学习之路_PYTHON基础(8)
学习内容: Python模块介绍 1.经典类 or 新式类 2.抽象接口 3.静态方法.类方法.属性方法 4.反射 5.异常处理 6.socket编程初识 7.用socket实现get.put文件等功 ...
- PYTHON学习之路_PYTHON基础(6)
学习内容: Python模块介绍 1.time &datetime模块 2.random 3.shutil 4.shelve 5.xml处理 6.configparser 7.hashlib ...
- PYTHON学习之路_PYTHON基础(4)
学习内容: 1.Python函数的基本语法 2.Python函数的返回值与变量 3.Python嵌套函数 4.Python递归函数及实例(二分查找) 5.Python匿名函数 6.Python内置方法 ...
- PYTHON学习之路_PYTHON基础(3)
学习内容: 1.Python字典 2.Python集合 3.Python字符编码 4.Python文件操作 5.Python实例 一.Python字典 1.定义: dic1={'name':'alex ...
- PYTHON学习之路_PYTHON基础(2)
学习内容: 1.Python数据类型与变量 2.Python字符串 3.Python列表 4.Python while循环 5.Python字典 6.Python实例 一.Python数据类型与变量 ...
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
随机推荐
- 解决: maven编译项目报“非法字符: \65279 ”错误
打包maven项目的时候,出现异常: [INFO] ------------------------------------------------------------------------ [ ...
- linux终端terminal个性化配置(转)
http://blog.csdn.net/pipisorry/article/details/39584489 {本文介绍Linux终端字体颜色设置.终端提示符显示内容设置.自定义alias命令} l ...
- hdu 1398 Square Coins (母函数)
Square Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- Newtonsoft.Json解析Json字符串案例:
/// <summary> /// 上行jsom格式日志记录 /// </summary> /// <param name="responseJson" ...
- linux下python调用c模块
在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明: (1)编写C代码,hel ...
- DOM事件机制进一步理解
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- 【私人定制jackson】定制jackson的自定义序列化(null值的处理)
最近用springMVC做服务端的http+json的接口,出现一个不是特别容易解决的问题: 在对List类型的值进行处理时,有一部分服务是有做一些逻辑判断的,在逻辑判断不通过的时候会返回一个null ...
- 初试Nodejs——使用keystonejs创建博客网站2(修改模板)
上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...
- C#调用WebService获取天气信息
概述 本文使用C#开发Winform应用程序,通过调用<WebXml/>(URL:http://www.webxml.com.cn)的WebService服务WeatherWS来获取天气预 ...
- Oracle DBA常用查询
Oracle DBA常用查询 –1. 查询系统所有对象select owner, object_name, object_type, created, last_ddl_time, timestamp ...