Python3学习之路(第一章)

Python入门

一、第一个python程序

创建一个hello.py 的文件内容如下:

1 #!/usr/bin/env  python          # 定义python解释器
2 # -*- coding:utf-8 -*-          # 定义python字符编码,python2中必须定义,python3种默认就是utf-8,可以不定义
3 #  author : guoshaolong         # 作者,可选
4 
5 print('hello world !')          # 程序内容

执行hello.py文件 python hello.py 

  注:在linux中需要给hello.py文件可执行权限chmod +x hello.py

  好了,第一个python程序搞定。

二、注释

单行注释:# 被注释内容

多行注释:""" 被注释内容 """

三 、变量

  1、声明变量

1 #!/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 #  author : guoshaolong
4 
5 name = "guoshaolong"

上述代码声明了一个变量,变量名为:name,变量name的值为:"guoshaolong"

变量定义的规则:变量名必须是大小写英文、数字和下划线的组合,且不能用数字开头,不能使用python内置关键字

以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

四、输入输出

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3   
4 # 将用户输入的内容赋值给 name 变量
5 name = input("请输入用户名:")
6   
7 # 打印输入的内容
8 print name

输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

 1 #!/usr/bin/env python 
 2 # -*- coding: utf-8 -*-    
 3 
 4 import getpass    
 5 
 6 # 将用户输入的内容赋值给 name 变量 
 7 pwd = getpass.getpass("请输入密码:")    
 8 
 9 # 打印输入的内容 
10 print pwd

 五、流程控制

1、用户登陆验证

 1 #!/usr/bin/env python
 2 # -*- coding: tuf-8 -*-
 3   
 4 # 提示输入用户名和密码
 5   
 6 # 验证用户名和密码
 7 # 如果错误,则输出用户名或密码错误
 8 # 如果成功,则输出 欢迎,XXX!
 9  
10 import getpass
11   
12 name = input('请输入用户名:')
13 pwd = getpass.getpass('请输入密码:')
14   
15 if name == "guoshaolong" and pwd == "cmd":
16     print "欢迎,guoshaolong!"
17 else:
18     print "用户名和密码错误"

六、while循环

1、基本循环

1 while 条件:
2      
3     # 循环体
4  
5     # 如果条件为真,那么循环体则执行
6     # 如果条件为假,那么循环体不执行

2、break

break用于退出所有循环

1 while True:
2     print "123"
3     break
4     print "456"

3、continue

continue用于退出当前循环,继续下一次循环

1 while True:
2     print "123"
3     continue
4     print "456"

七、练习题

1、使用while循环输入 1 2 3 4 5 6     8 9 10

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 #  author : guoshaolong
 4 
 5 # 使用while循环输出1 2 3 4 5 6    8 9 10
 6 
 7 i = 1
 8 while i <= 10:
 9     if i == 7:
10         i += 1
11         continue  # 跳出本次循环,开始下次循环
12     print(i)
13     i += 1
View Code

2、求1-100的所有数的和

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 #  author : guoshaolong
 4 
 5 # 求 1-100的所有数的和
 6 
 7 j = 0
 8 i  = 1
 9 while i < 101:
10         j += i
11         i += 1
12 print(j)
View Code

3、输出 1-100 内的所有奇数

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 #  author : guoshaolong
 4 
 5 # 输出1-100 内错有的奇数
 6 i = 1
 7 while i < 101:
 8     if i % 2 == 1:
 9         print(i)
10     i += 1
View Code

4、输出 1-100 内的所有偶数

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 #  author : guoshaolong
 4 
 5 # 输出1-100 内所有的偶数
 6 i = 1
 7 while i < 101:
 8     if i % 2 == 0:
 9         print(i)
10     i += 1
View Code

5、求1-2+3-4+5 ... 99的所有数的和

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 #  author : guoshaolong
 4 
 5 # 求1-2+3-4+5... 99的所有数的和
 6 j = 0
 7 i = 1
 8 while i < 100:
 9     if i % 2 == 1:
10         j += i
11     else:
12         j -= i
13     i += 1
14 print(j)
View Code

6、用户登陆(三次机会重试)

 

运算符

1、算数运算

2、比较运算

3、赋值运算

4、逻辑运算

5、成员运算

 

 基本数据类型

1、数字

int(整型)

  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
2、布尔型
  True或False
  1 或 0
3、字符串
字符串常用功能:
1 “hello world”
  • 创建
    a = "shaolong"
    a = str('shaolong')
  • 转换
    age = 19
    new_age = str(age)
  • 拼接
    name = 'alex'
    gender = ''
    new_str = name + gender
    print(new_str)
  • 格式化
    name = '我叫郭少龙,性别:%s,我今年%s岁。' %('',19,)
    print(name)
  • in 判断
    content = "床前明月光,疑是地上霜。举头望明月,低头思故乡。"
    
    if "月光" in content:
        print('包含敏感字符')
    else:
        print(content)
  • 移除空白
    val = "  guoshaolong  "
    print(val)
    # new_val = val.strip() # 左右
    # new_val = val.lstrip()# 左边
    # new_val = val.rstrip() # 右边
    # print(new_val)
  • 分割
    user_info = "shaolong|abc|123"
    # v = user_info.split('|')
    # v = user_info.split('|',1)
    # v = user_info.rsplit(' ',1)
    # print(v)
  • 长度
    val = "morninggood"
    v = len(val)
    print(v)
  • 索引
    1 val = "morninggood"
    2 v = val[0]
    3 print(v)
    4                     
    5 val = input('>>>')
    6 i = 0
    7 while i < len(val):
    8     print(val[i])
    9     i += 1
  • 切片
    name = '床前明月光,疑是地上霜。举头望明月,低头思故乡。'
    print(name[0])    #
    print(name[0:2])    #床前
    print(name[5:9])    #光,疑是
    print(name[5:])    #光,疑是地上霜。举头望明月,低头思故乡。
    print(name[5:-2])    #光,疑是地上霜。举头望明月,低头思故
    print(name[-2:])    #乡。

4、列表

创建列表:
1 name_list = ['seven', 'eric']
2 3 name_list = list(['seven', 'eric'])

基本操作:

  • 索引
    1 val = a[0]
  • 切片
    1 a = ['a','b','c','d']
    2 v = a[0::2]
    3 print(v)
    4                  
  • 追加
    1 a = ['a','b','c','d']
    2 a.append('e')
    3 print(a)
  • 插入
    1 a = ['a','b','c','d']
    2 a.insert(0,'x')
    3 print(a)
  • 删除
    1 a = ['a','b','c','d','e']
    2 # a.remove('c')
    3 del a[0]
    4 print(a)
  • 长度
    1 val = len(a)
  • 切片
    1 a = ['a','b','c','d']
    2 v = a[0::2]
    3 print(v)
  • 循环
    1 a = ['a','b','c','d','e']
    2 for item in a:
    3     print(item)
    4     # break
    5     # continue
  • 更新、修改
    1 a = ['a','b','c','d','e']
    2 a[1] = 'x'
    3 print(a)
  • in 判断
    1 a = ['a','b','c','de']
    2 if 'd' in a:
    3     pass
    4                         
    5 if 'd' in a[0]:
    6     pass

     

5、元组

创建元祖:

1 ages = (11, 22, 33, 44, 55)
2 3 ages = tuple((11, 22, 33, 44, 55))
基本操作:
  • 索引
    1 print('ages[0]')
  • 切片
  • 循环
  • 长度
  • 包含

6、字典(无序)

创建字典:

1 person = {"name": "guoshaolong", 'age': 18}
2 3 person = dict({"name": "guoshaolong", 'age': 18})

常用操作:

  • 索引
    1 person = {"name": "guoshaolong", 'age': 18}
    2 n = person['name']
    3 print(n)
  • 新增(无,增加;有,修改)
    1 person = {"name": "guoshaolong", 'age': 18}
    2 person['age'] = 19
    3 print(person)
  • 删除
    1 person = {"name": "guoshaolong", 'age': 18}
    2 del person['name']
    3 print(person)
  • 循环
    1 person = {"name": "guoshaolong", 'age': 18}
    2 for item in person.keys():
    3     print(item)
    4 for item in person.values():
    5     print(item)
    6 for key,val in person.items():
    7     print(key,val)
  • 长度
    1 person = {"name": "guoshaolong", 'age': 18}
    2 n = len(person)
    3 print(n)

PS:循环,range,continue 和 break

练习题

一、元素分类

有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 #  author : guoshaolong
 4 
 5 
 6 # a.元素分类
 7 # 有如下值集合
 8 # v1 = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90],
 9 # 将所有大于 66 的值保存至字典的第一个key中,将小于66# 的值保存至第二个key的值中。
10 # 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
11 #
12 # v2 = {'k1': [], 'k2': []}
13 
14 v1 = [11,22,33,44,55,66,77,88,99,90]
15 k1 = []
16 k2 = []
17 v2 = {}
18 for item in v1:
19     if item < 66:
20         k2.append(item)
21     if item > 66:
22         k1.append(item)
23 v2['k1'] = k1
24 v2['k2'] = k2
25 print(v2)
View Code
二、查找
查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
    li = ["alec", " aric", "Alex", "Tony", "rain"]
    tu = ("alec", " aric", "Alex", "Tony", "rain") 
    dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
 
三、输出商品列表,用户输入序号,显示用户选中的商品
    商品 li = ["手机", "电脑", '鼠标垫', '游艇']
 
四、购物车

功能要求:

  • 要求用户输入总资产,例如:2000
  • 显示商品列表,让用户根据序号选择商品,加入购物车
  • 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
  • 附加:可充值、某商品移除购物车
1 goods = [
2     {"name": "电脑", "price": 1999},
3     {"name": "鼠标", "price": 10},
4     {"name": "游艇", "price": 20},
5     {"name": "美女", "price": 998},
6 ]

五、用户交互,显示省市县三级联动的选择

 1 dic = {
 2         "河北": {
 3             "石家庄": ["鹿泉", "藁城", "元氏"],
 4             "邯郸": ["永年", "涉县", "磁县"],
 5         },
 6         "河南": {
 7             "郑州":["中原区","上街区","金水区"],
 8             "开封":["老城区","吉利区","新安县"],
 9         },
10         "山西": {
11             "太原":["小店区","清徐县","阳曲县"],
12             "临汾":["尧都区","洪洞县","古县"],
13         }
14     }
 1 #!/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 #  author : guoshaolong
 4 
 5 dic = {
 6                 "河北": {
 7                     "石家庄": ["鹿泉", "藁城", "元氏"],
 8                     "邯郸": ["永年", "涉县", "磁县"],
 9                 },
10                 "河南": {
11                     "郑州":["中原区","上街区","金水区"],
12                     "开封":["老城区","吉利区","新安县"],
13                 },
14                 "山西": {
15                     "太原":["小店区","清徐县","阳曲县"],
16                     "临汾":["尧都区","洪洞县","古县"],
17                 }
18             }
19 a = 0
20 b = 0
21 print('欢迎使用省、市、县 查询系统')
22 for  v in dic.keys():
23     print(v)
24 while a < 3:
25     inp1 = input('请输入要查询的省份:')
26     if inp1 in dic.keys():
27         for i in dic[inp1]:
28             print(i)
29         while b < 3:
30             inp2 = input('请输入市:')
31             if inp2 in dic[inp1]:
32                 for j in dic[inp1][inp2]:
33                     print(j)
34                 exit()
35             else:
36                 print('没有你要查询的市,请重新输入:')
37                 b += 1
38                 continue
39     else:
40         print('没有你要查询的省,请重新输入:')
41         a += 1
View Code
posted @ 2017-05-04 23:46  郭少龙  阅读(246)  评论(0编辑  收藏  举报