从零学习python3_ day_1

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/devincob/article/details/81385473

python第一天:
一、什么是python?
89年圣诞节 龟叔圣诞节打发时间写的脚本解释程序
目前应用领域:

  1. 云计算 、
  2. 科学运输
  3. 人工智能
  4. 金融
  5. 图形GUI

它是一门动态解释性强类型定义语言(它是解释性语言、动态类型语言、强类型定义语言)
二、python优缺点
优点

  1. 定位 优雅明确 简单 简单易懂
  2. 开发效率搞 有强大的第三方面库 开发周期短
  3. 它是高级语言:无需考虑如何管理你的程序使用的内存一类的细节
  4. 可植入性如果小新避免使用依赖系统的特性,程序无需修改可以在所有系统平台运行
  5. 可扩展希望关键代码不公开或者更快 可以用c或者 c++缩写然后python中使用它们
  6. 可嵌入性 可嵌入C++为你的程序提供脚本功能
    缺点
  7. 速度慢比c慢的太多
  8. 代码不能加密 因为他是解释性语言她的源码是以明文形式存在的
  9. 线程不能利用多cpu问题
    解释器:
    Cpython
    IPython
    PyPy
    Jypthon
    IronPython

如果你想自己的代码跑的快那就去用PyPy
三、发展史(我不想知道…反正我是从python3开始认识它的)
四、python安装(点击安装python教程
五、第一个程序:hello word
window 下 左下角 cmd
这里写图片描述
也可以写成一个文件类似于js这类文件都以它名字缩写结尾xx.py
六、开发工具/变量/字符编码
Pycharm
声明变量 (存东西方便调用)
定义变量 (默认是string形式)
变量赋值:
变量名 = 变量值(python2中不能直接赋值汉语,因为编码是ASKII,python3默认的编码格式是utf-8)
这里写图片描述
变量定义规则

  1. 变量名只能是字母数字下划线的任意组合
  2. 变量名第一个字符不能是数字
  3. 关键字不能为变量名(自行了解哪些关键字)
  4. 尽量规范 驼峰命名法 或者语义命名法 忌讳用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中能够直接处理的数据类型

  1. 整数
  2. 浮点数(也就是小数)
  3. 字符串(也就是用一个单引号或者一个双引号包起来的东西)
  4. 布尔值(bool就两种 对Ture和错False),布尔值可以用and(并且,并列 条件全部满足)、or(条件有一个满足)、not(非,不是)运算
  5. 空值(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 流程判断

  1. 注意不要少写了冒号:
  2. 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教程链接

猜你喜欢

转载自blog.csdn.net/devincob/article/details/81385473