python第一天:
一、什么是python?
89年圣诞节 龟叔圣诞节打发时间写的脚本解释程序
目前应用领域:
它是一门动态解释性强类型定义语言(它是解释性语言、动态类型语言、强类型定义语言)
二、python优缺点
优点
如果你想自己的代码跑的快那就去用PyPy
三、发展史(我不想知道…反正我是从python3开始认识它的)
四、python安装(点击安装python教程)
五、第一个程序:hello word
window 下 左下角 cmd
也可以写成一个文件类似于js这类文件都以它名字缩写结尾xx.py
六、开发工具/变量/字符编码
Pycharm
声明变量 (存东西方便调用)
定义变量 (默认是string形式)
变量赋值:
变量名 = 变量值(python2中不能直接赋值汉语,因为编码是ASKII,python3默认的编码格式是utf-8)
变量定义规则
print('hello, world', devin)
print(200-100)
如果要让用户从电脑输入一些字符怎么办?Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:
当你输入name = input()并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。
输入完成后,不会有任何提示,Python交互式命令行又回到>>>状态了。那我们刚才输入的内容到哪去了?答案是存放到name变量里了。可以直接输入name查看变量内容:
>>> name
'devin'
总之: input()和print()是在命令行下面最基本的输入和输出
数据类型
先要了解的是,在python中能够直接处理的数据类型
>>> '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 流程判断
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教程链接