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 importgetpass5
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 importgetpass11
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 whileTrue:2 print "123"
3 break
4 print "456"
3、continue
continue用于退出当前循环,继续下一次循环
1 whileTrue: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 =08 i = 1
9 while i < 101:10 j +=i11 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 =07 i = 1
8 while i < 100:9 if i % 2 == 1:10 j +=i11 else:12 j -=i13 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 = 19new_age= str(age)
拼接
name = 'alex'gender= '女'new_str= name +genderprint(new_str)
格式化
name = '我叫郭少龙,性别:%s,我今年%s岁。' %('男',19,)print(name)
in 判断
content = "床前明月光,疑是地上霜。举头望明月,低头思故乡。"
if "月光" incontent: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 =07 while i
切片
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 dela[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 ina: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' ina:3 pass
4
5 if 'd' ina[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 inperson.keys():3 print(item)4 for item inperson.values():5 print(item)6 for key,val inperson.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 inv1:19 if item < 66:20 k2.append(item)21 if item > 66:22 k1.append(item)23 v2['k1'] =k124 v2['k2'] =k225 print(v2)
View Code
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 =020 b =021 print('欢迎使用省、市、县 查询系统')22 for v indic.keys():23 print(v)24 while a < 3:25 inp1 = input('请输入要查询的省份:')26 if inp1 indic.keys():27 for i indic[inp1]:28 print(i)29 while b < 3:30 inp2 = input('请输入市:')31 if inp2 indic[inp1]:32 for j indic[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