从零学习python3_ day_1
python第一天:一、什么是python?89年圣诞节 龟叔圣诞节打发时间写的脚本解释程序目前应用领域:云计算 、科学运输人工智能金融图形GUI它是一门动态解释性强类型定义语言(它是解释性语言、动态类型语言、强类型定义语言)二、python优缺点优点1. 定位 优雅明确 简单 简单易懂2. 开发效率搞 有强大的第三方面库 开发周期短3. ...
python第一天:
一、什么是python?
89年圣诞节 龟叔圣诞节打发时间写的脚本解释程序
目前应用领域:
- 云计算 、
- 科学运输
- 人工智能
- 金融
- 图形GUI
它是一门动态解释性强类型定义语言(它是解释性语言、动态类型语言、强类型定义语言)
二、python优缺点
优点
- 定位 优雅明确 简单 简单易懂
- 开发效率搞 有强大的第三方面库 开发周期短
- 它是高级语言:无需考虑如何管理你的程序使用的内存一类的细节
- 可植入性如果小新避免使用依赖系统的特性,程序无需修改可以在所有系统平台运行
- 可扩展希望关键代码不公开或者更快 可以用c或者 c++缩写然后python中使用它们
- 可嵌入性 可嵌入C++为你的程序提供脚本功能
缺点 - 速度慢比c慢的太多
- 代码不能加密 因为他是解释性语言她的源码是以明文形式存在的
- 线程不能利用多cpu问题
解释器:
Cpython
IPython
PyPy
Jypthon
IronPython
如果你想自己的代码跑的快那就去用PyPy
三、发展史(我不想知道…反正我是从python3开始认识它的)
四、python安装(点击安装python教程)
五、第一个程序:hello word
window 下 左下角 cmd
也可以写成一个文件类似于js这类文件都以它名字缩写结尾xx.py
六、开发工具/变量/字符编码
Pycharm
声明变量 (存东西方便调用)
定义变量 (默认是string形式)
变量赋值:
变量名 = 变量值(python2中不能直接赋值汉语,因为编码是ASKII,python3默认的编码格式是utf-8)
变量定义规则
- 变量名只能是字母数字下划线的任意组合
- 变量名第一个字符不能是数字
- 关键字不能为变量名(自行了解哪些关键字)
- 尽量规范 驼峰命名法 或者语义命名法 忌讳用a,b、c、拼音随意命名
常量就是不能变的量例如数学中的π
注释:
1.单行注释: #被注释内容
2.多行注释: “”“被注释内容 “””
Python基础:
一、用户打印/输入:
print()在括号中加上字符串,就可以向屏幕上输出指定的文字,逗号“,”用来间隔。
也可直接打印数字的加减乘除…
print('hello, world', devin)
print(200-100)
如果要让用户从电脑输入一些字符怎么办?Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:
当你输入name = input()并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。
输入完成后,不会有任何提示,Python交互式命令行又回到>>>状态了。那我们刚才输入的内容到哪去了?答案是存放到name变量里了。可以直接输入name查看变量内容:
>>> name
'devin'
总之: input()和print()是在命令行下面最基本的输入和输出
数据类型
先要了解的是,在python中能够直接处理的数据类型
- 整数
- 浮点数(也就是小数)
- 字符串(也就是用一个单引号或者一个双引号包起来的东西)
- 布尔值(bool就两种 对Ture和错False),布尔值可以用and(并且,并列 条件全部满足)、or(条件有一个满足)、not(非,不是)运算
- 空值(None一个特殊的空值,并不是0)
在Python中,采用的格式化方式和C语言是一致的,用%实现
**%**运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。
1、如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串:
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'
2、有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'
3、format()
另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,不过这种方式写起来比%要麻烦
>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'
list和tuple
list:Python内置的一种数据类型列表,可随时添加删除
len()函数可获得list个数:
用索引来访问list 中的元素 索引从0开始;
这里索引超出范围时,python会报错,所以索引不要越界
当然如果要取最后一根元素,除了计算索引位置外,还可以用-1索引直接获取最后一根元素
list是可变有序表,所以可在list追加元素,也可以吧元素插入到指定位置,或者删除list末尾或者指定位置的元素。
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:
list里面的元素的数据类型也可以不同,比如:
list元素也可以是另一个list,比如:
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4
tuple
tuple和list非常类似,但初始化后就不能更改,所以也不会有append()insert()类似的方法,但获取元素的方法和list一样X[x],但取到后也不能赋值,这样不可变的值使代码更安全
,tuple陷阱:
定义的时候元素必须确定下来
>>> t = (1, 2)
>>> t
(1, 2)
如果定义一个空的tuple 可以写成()
>>> t = ()
>>> t
()
但是…但是
要定义一个只有1个元素的tuple,如果你这么定义:
>>> t = (1)
>>> t
1
定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
>>> t = (1,)
>>> t
(1,)
所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
练习栗子:
# -*- coding:utf-8 -*-python2 中要加入这句话 能识别中文 python3 默认如此
# print("hello world")
# gf_name_of_alex ="yadang"
name = input("name:")
age = int(input("age:")) #interger是把string转换成整数形式
print(type(age), type(str(age))) #type是用来检测变量类型
job = input("job:")
salary = input("salary:")
# f浮点 d 数字 s string
info1 = """
------info1 of %s-----
Name:%s
Age:%d
Job:%s
Salary:%s
""" % (name, name, age, job, salary)
print(info1)
info2 = """
------info2 of {_name}-----
Name:{_name}
Age:{_age}
Job:{_job}
Salary:{_salary}
""" .format(_name=name, _age=age, _job=job, _salary=salary)
print(info2)
info3 = """
------info3 of {0}-----
Name:{0}
Age:{1}
Job:{2}
Salary:{3}
""" .format(name, age, job, salary)
print(info3)
二、if elif else 流程判断
- 注意不要少写了冒号:
- elif是else if的缩写,完全可以有多个elif
name = "devin"
age = 24
#guess_name = int(input("name:"))
guess_age = int(input("age:"))
if guess_age == age:
#如果两个条件需要同时满足 那就写guess_age == age and guess_name = name
print("you get it")
break
elif guess_age > age:
print("think smaller...")
else:
print("think bigger...")
print("else同一等级...")
同时在写的时候注意格式 如果 print 写在和else 同一等级 那每次输出的就不是判断下的而是同一等级下的
三、循环- while
count = 0
# while True:
# print("count:", count)
# count = count +1
age = 23
guess_age = int(input("age:"))
while count < 3: #当count 小于3的时候执行下面代码
guess_age = int(input("age:"))
if guess_age == age:
print("you get it")
break
elif guess_age > age:
print("think smaller...")
else:
print("think bigger...")
count = count +1 #count #再提醒一下,这里如果count靠后和print同一级别则附属于else 就不会每次都+1了
print(count,"times")
else:
print("you should tried too many times ...no changes")
#如果再想优化一下
当等于三次的时候 继续执行一些内容
四、for in 循环
for x in …循环就是把每个元素代入变量x,然后执行缩进块的语句。
#Authon: devincob
# for i in range(0, 10, 2):
#0代表从0开始 10代表循环的量 2代表步长,默认1
# print("loop", i)
age_of_devin = 34
count = 0
for i in range(3):
guess_age = int(input("guess_age"))
if guess_age == age_of_devin:
print("yes, you get it")
elif guess_age > age_of_devin:
print("think smaller...")
else:
print("think bigger...")
count = count +1
if count == 3:
countine_confirm = input("Do you want to keep guessing?")
if countine_confirm != "n":
count = 0
# else:
# print("you have tried too many times..no changes")
continue和break
break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。
要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句,上面的两个例子,都可以通过改写循环条件或者修改循环逻辑,去掉break和continue语句。
# for i in range(0, 10):
# if i < 5:
# print(i)
# else:
# continue # 跳出本次循环 进入下一次循环
# print(i+1, "Times")
for i in range(10):
print("..........", i)
for j in range(10):
print(j)
if j > 5:
break #结束当前循环 break语句可以提前退出循环
附一个老师的Python教程链接
更多推荐
所有评论(0)