博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python入门
阅读量:6881 次
发布时间:2019-06-27

本文共 11234 字,大约阅读时间需要 37 分钟。

一.python介绍

   Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对

象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989 年发

明,第一个公开发行版发行于1991年。

   Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL协议 。P

ython语法简洁清晰,特色之一是强制用白符作为语句缩进。 

   Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言

作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,

使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有

特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能

要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。

需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平

台的实现。

二.python解释器

    1.python解释器的作用是将程序员写得代码翻译成机器语言

    2.python目前有两种版本:python2.7.x和python3.x

    3.如何实现python解释器多版本共存?

     下载安装两个版本的python解释器->找到各自的目录将里面的python.

     exe,将其复制粘贴复件重命名为python2和3->打开计算机高级属性

     中的环境变量-->添加系统环境变量->将python两个版本的各自根目

     录路径复制进环境变量中

三.python程序的运行方式

1 python的两种运行方式

     (1):在终端解释器中写程序运行(交互式模式)

         优点:方便调试

         缺点:无法永久保存,不适合开发

     (2):将代码写到文件中,再调用文件路径运行

         优点:永久保存,适合开发

         缺点:调试稍微麻烦

2 python代码运行过程

      启动python解释器-->将文件中的代码读入内存-->解释执行

           

四.变量

1.定义

      变量是一种可以反映状态变化的机制

2.变量的存在意义

      程序的执行本质就是一系列变化

3.定义变量的注意事项

     (1)首字母不能是数字

     (2)只能由数字、下划线、英文字母构成

     (3)不能与关键字一样,容易混淆

4.规范书写

      为了使长串代码更加容易阅读理解,采用驼峰体或者下划线式          

5.变量的三个特征

           id:地址          type:数据类型          value:值 

代码演示

x = 'SongXueXiang'print(id(x), type(x), x)运行结果2344171221488 
SongXueXiang

6.“=”与“is”的区别:

“=”比较的是值

代码演示

  >>> x='name:alex,age:73'          >>> x='name:alex,age:73'          >>> id(s1)          2506534695408          >>> id(s2)          2166679483056          >>>          >>> s1 is s2          False          >>> s1 == s2          True            

“is”比较的是id

代码演示

  >>> x=1          >>> y=x          >>>          >>>          >>> id(x)          1767599584          >>> id(y)          1767599584          >>> x == y          True          >>> x is y          True 

7.常量

   定义:不变的量(例如π)

五.数据类型

1.分类:

   数字类型、字符串类型、列表、字典、布尔类型

2.数字类型:

   int整型(用于整数),float浮点

3.两种数字类型的区别:

   int和float类型只能存一个值,不可变(值变,id就变) 

4.字符串类型:

   在python中,加了引号的字符就是字符串类型,python并没有字符类型

(1)字符串相加相乘:

代码演示

  x = "杨"  y = "宋"  print(x+y)  print(x*10)
#代码运行结果杨宋杨杨杨杨杨杨杨杨杨杨

(2)字符串类型方法运用 

  1) 移除name变量对应的值两边的空格, 并输出处理结果处理方法.strip()去空值
name = "     aleX".strip() print(name)

   2) 判断name变量对应的值是否以"al"开头, 并输出结果处理方法.startswith()方法判断开头

name = "aleX" name.startswith('al') print(name.startswith('al'))    
  3) 判断name变量对应的值是否以"X"结尾, 并输出结果
处理方法.endswith()方法判断开头         
name = "aleX"name.endswith('X')print(name.endswith('X'))
  4) 将name变量对应的值中的 “l” 替换为 “p”, 并输出结果处理方法.replace()方法替换
name = "aleX"print(name.replace('l','p'))
  5) 将name变量对应的值根据 “l” 分割, 并输出结果。处理方法.split()
name = "aleX" print(name.split('l'))
  6) 将name变量对应的值变大写, 并输出结果
处理方法.upper()
name = "aleX"print(name.upper()) 
  7) 将name变量对应的值变小写, 并输出结果
处理方法.lower()
name = "aleX" print(name.lower()) 
  8) 请输出name变量对应的值的第2个字符?处理方法:索引取值
name = "aleX" print(name[1]) 
  9) 请输出name变量对应的值的前3个字符?处理方法:切片
name = "aleX" print(name[0:3:1]) 

   10)请输出name变量对应的值的后2个字符?
处理方法:切片

正向切片name = "aleX"             print(name[2:4:1])反向切片 name=' aleX'             print(name[-2:])
  11)请输出name变量对应的值中 “e” 所在索引位置?
处理方法.index()
      name = "aleX"       print(name.index('e'))

   12)获取子序列, 去掉最后一个字符。如: oldboy则获取oldbo。

name = "aleX"a=name[:-1] print(a)

   13)字符串循环打印

1.name='sxx'i=0while i < len(name):    print(name[i])    i+=12.name='sxx'for i in name:  print(i) 

5.列表:

(1)定义:

   [ ]内可以有多个值,类型随意,逗号分隔,可变,有序

示例

 
songxuexiang=['sxx','eat',16]
 

(2)列表的增删改查

   1)索引取值

n=[1,2,3,4]print(n[1])

   2).列表的切片

x=['aa','bb','cc','dd']print(x[1:2])

   4).列表的长度

x=['aa','bb','cc','dd']print(len(x))

   5).成员运算in和not in

x=['aa','bb','cc','dd']print('aa' in x) 

   6).列表的追加

x=['aa','bb','cc','dd']x.append['ee']print(x)

    7)列表内删除

1.       x=['aa','bb','cc','dd']         del x[1]        print[x]2.        x.remove(aa)     单纯的删除        print(x)3        x.pop()   默认是从末尾删,值违背删去,被取走,通过x.pop可以调用        x.pop(0)        print(x)

   8)列表循环

x=['aa','bb','cc','dd']i=0while i

列表格式练习

题:
students = [    {
'name': 'sxx', 'age': 18, 'sex': 'male'}, {
'name': 'lxx', 'age': 38, 'sex': 'fmale'}, {
'name': 'hxx', 'age': 48, 'sex': 'male'}, {
'name': 'qxx', 'age': 58, 'sex': 'fmale'}, {
'name': 'liwenzhou', 'age': 68, 'sex': 'male'}, ] 要求循环打印所有学生的详细信息,格式如下 < name: egon age: 18 sex: male > < name: alex age: 38 sex: fmale > < name: wxx age: 48 sex: male > < name: yuanhao age: 58 sex: fmale > < name: liwenzhou age: 68sex: male >
解:n = 0while True:    if n < 5:        name=students[n]['name']        age=students[n]['age']        sex=students[n]['sex']        print('
'%(name,age,sex)) else: break n += 1          

6.元组

(1)定义:

   ( )内可以有多个值,类型随意,逗号分隔,相当于不可变的列表,有序 

  x=('a','b','c')        

    1)按索引取值(正向取+反向取):      

  x=('aa','bb','cc','dd')    print(n[1])

    2):元组的切片 

x=('aa','bb','cc','dd')      print(x[1:2])

    3):元组的长度

x=('aa','bb','cc','dd')        print(len(x))    

    4):元组的循环

x=('aa','bb','cc','dd')    i=0    while i

   5)查询位置

     x=('aa','bb','cc','dd')             print(t.index('aa'))        

   6)查询元素个数

x=('aa','bb','cc','dd')            print(t.count('x'))

7.字典

(1)定义:

   { }内可以有多个值,类型随意,逗号分隔,无序,不可变

    dic={
'name':'sxx','age':18}

   1)按key存取值:可存可取 

dic={
'name':'sxx'} dic['age']=10 print(dic)

   2)改大小写.upper()方法和.lower()方法

x={
'name':'sxx'} dic['name']=dic['name'].upper()

   3)长度运算

dic={
'name':'sxx','age':18} print(len(dic))
 

   4)字典内元素删除

dic={
'name':'sxx','age':18} del dic['name'] print(dic) dic={
'name':'sxx','age':18} res=dic.pop('name') print(res)

   5)字典取值不确定key时,避免错误

dic={
'name':'sxx','age':18}print(dic.get('namexxxxxxxxxxx'))

   6)字典更新

dic={
'name':'sxx','age':18} dic.update({
'x':1,'age':19}) print(dic)
对与老字典来说,更新指的是,新字典中有而老字典中没有则添加,新有而老有,则覆盖
 
 

   7)字典创建

1.     good_info={                     'name':None,                     'price':None,                     'count':None                         }  2.       print({}.fromkeys(['name','age','sex'],None))

   8)字典setdefaul方法

    dic={
'name':'sxx','age':18}    res=dic.setdefault('name',SXX')      print('返回值',res)        print(dic)    字典有中有key,则不修改,返回原key对应的原值    没有对应的key,则添加,返回添加的key对应的value      

9.集合

(1).定义:

    { }内以,分隔开的元素,可村多个值,不可变,无序

(2):常用操作

    1)去重

s1=set('hello')        print(s1)

    2)关系运算

stus1={
'sxx','yb','张全蛋','李铁蛋','wer'}stus2={
'李二丫','wxx','liudehua','sxx','yb'}既是stuws1里的又是stus2里的的学生:交集print(stus1& stus2)print(stus1.intersection(stus2))所有的学生:并集print(stus1| stus2)print(stus1.union(stus2))只是stus1里的,不在stus2里的:差集print(stus1-stus2)print(stus1.difference(stus2))没有同时在stus1和stus2的学生姓名:交叉补集print(stus1^stus2)print(stus1.symmetric_difference(stus2))                   

10.单引号、双引号、多引号的区别

   引号运用方法:  

       字符串类型如果有单引号则外面套双引号,

        反之双套单三引号一般用于多行字符串

代码演示

 
x='''我有一头小毛炉啊,我从来也不骑,有一天我心血来潮骑着它去赶集'''print('x') 

11.布尔类型重点:

   1、None,0,空(空字符串,空列表,空字典等)三种情况下

     布尔值为False

    2、其余均为真

12.%s和%d的区别:

     %s:能接收字符串和数字

     %d:只能接收数字

x=[aa,bb,cc,dd]print('一:%s;二%s'%(x[1]),x[2])
x=[aa,bb,cc,dd]print('一:%d;二%d'%(x[1]),x[2])##这是为了说明%d只能接                                  ##收数字,运行会报错  

6:基本运算符

    算数运算符

比较运算符

 

 赋值运算符    

逻辑运算符

7.if.....else语句

    含义:如果.....那么

1.用户登录验证

user_name = 'seven'user_password = '123'inp_name = input('请输入用户名:')inp_password = input('请输入用户密码:')if user_name == inp_name and user_password==inp_password:    print('登陆成功')     else:     print('用户名错误')

8.while循环

用户验证错误三次锁定

 
user_name = 'seven'user_password = '123'n = 0while True:    if n < 3:        inp_name = input('请输入用户名:')        inp_password = input('请输入用户密码:')        if user_name == inp_name:            print('登陆成功')        else:            print('用户名错误')        n += 1    else:        print('尝试次数过多,锁定')        break    print('尝试次数:', n)

循环嵌套

 
name='sxx'password='123'tag=Truewhile tag:    inp_name=input('用户名: ')    inp_pwd=input('密码: ')    if inp_name == name and inp_pwd == password:        while tag:            cmd=input('>>: ')            if not cmd:continue            if cmd == 'quit':          tag=false                  break            print('run <%s>' %cmd)    else:        print('用户名或密码错误')        continue    break

简单的购物小程序

msg='''1.注册2.登录3.退出'''sp='''编号           商品          价格  1             mac          20000  2           lenovo         10000  3            apple         200  4            tesla         100000'''goods = [    {'name': 'mac', 'price': 20000},    {'name': 'lenovo', 'price': 10000},    {'name': 'apple', 'price': 200},    {'name': 'tesla', 'price': 100000},]m=[]h={}n=1tag=Trueprint('欢迎进入商城')while tag:    print(msg)    with open('b', mode='r', encoding='utf-8') as f:     for line in f:        l=line.split(',')        h.setdefault(l[0])        h[l[0]]=l[3]     inp_xx=input('注册请输入1,登录请输入2,退出请按3:').strip()     if inp_xx=='1':        print('欢迎新用户')        inp_name = input('输入姓名').strip()        if inp_name in h:            print('存在该用户,请重新注册或登陆')            continue        else:            inp_sex = input('输入性别').strip()            inp_age = input('输入年龄').strip()            inp_password=input('请输入下次登录密码').strip()            with open(r'b', mode='at', encoding='utf-8') as f:                f.write('\n%s,%s,%s,%s,0' % (inp_name,inp_sex,inp_age,inp_password))                print('注册成功,')                print('用户信息(姓名:%s,性别:%s,年龄:%s,密码:%s)' % (inp_name,inp_sex,inp_age,inp_password))                continue     elif inp_xx=='2':        while tag:            inp_name = input('输入用户名:').strip()            inp_password = input('输入密码:').strip()            if inp_name in h and  inp_password == h[inp_name]:                print(sp)                salary = input("请输入你的金额").strip()                i = input('请输入商品编号').strip()                while tag:                    salary = int(salary)                    if i  in ['1','2','3','4']:                        i = int(i) - 1                        name = goods[i]['name']                        price = int(goods[i]['price'])                        while tag:                            if price <= salary:                                m.append(name)                                salary -= price                                cmd = input('购买成功,退出请输入quit,继续浏览请回复随意字符:')                                if cmd == 'quit':                                    print('你购买的商品为%s,你的余额为%s' % (m, salary))                                    tag = False                                else:                                    print(sp)                                    i=input('还要买什么,请输入编号')                                    break                            else:                                print('你的余额不够')                                cz = input("充值")                                cz = int(cz)                                salary += cz                                print("用户名:%s;余额:%s" % (inp_name, salary))                                continue                    else:                        print("请输入编号")            elif n < 3:                print('用户名、密码错误')                print('尝试次数', n)                n += 1            else:                print('尝试次数过多')                break     elif inp_xx=='3':        print("谢谢惠顾")        break     else :        print("请输入1,2或3")        continue

  

 

 

 

 

 

 

  

 

  

 

转载于:https://www.cnblogs.com/songxuexiang/p/8597963.html

你可能感兴趣的文章
Code First开发系列之管理并发和事务
查看>>
Spark SQL概念学习系列之为什么使用 Spark SQL?(二)
查看>>
VirtualBox-Linux系统安装增强功能
查看>>
ssh/ssh2登录
查看>>
mongodb对数组元素及内嵌文档进行增删改查操作(转)
查看>>
【python3.5】安装lxml中没有etree模块的问题解决方法
查看>>
pgpool-II的性能缺陷
查看>>
spin_lock浅析【转】
查看>>
MVC前台Post/Get异步获得数据时参数的取值问题
查看>>
8086/8088指令详解
查看>>
iOS:自定义代码块{ }
查看>>
C# 远程链接指定计算机,获取该计算机的计算机名等信息
查看>>
[Flume][Kafka]Flume 与 Kakfa结合例子(Kakfa 作为flume 的sink 输出到 Kafka topic)
查看>>
OpenGL入门笔记(十一)
查看>>
kill命令
查看>>
python3爬虫(二)实战- 爬糗事百科
查看>>
windowsXP用户被禁用导致不能网站登录
查看>>
第 8 章 TokyoCabinet/Tyrant
查看>>
智慧城市逐步推进 未来城市建设突破口分析
查看>>
是谁在推动路由器智能连接功能的普及?
查看>>