【笔记】Python编程 从入门到实践 ch02-ch07

Python语法与主流的高级语言有明显差异

  1. 缺少”{}”对作用域的划分,for、if等逻辑处理顺序通过tab“    ”来定义

  2. 逻辑判断到处理需要使用":"引导,并在后续语句前添加一级tab。逻辑处理结束后的语句则删除一级tab

  3. 常用的for循环范围通过range(闭区间,开区间,步长)定义,或者是 in 列表(字典)两种主流方式。前者用于对数字序列的遍历,后者用于对已有列表(字典)的遍历

基础语法代码:

# -- coding: utf-8 -- 
# python_syntax01.py 通过一个程序来展示 python 基本语法 #
# 覆盖 Python编程 从入门到实践 第2章到第7章内容

################################################################################
print("################################ 字符串 ################################")
# 字符串
## 变量的定义与复制
message="hello,python."
## print() 会对当前消息自动添加字符串尾的换行
print(message)																   	# hello,python.

## string 常用函数
### title() 将每个单词首字母大写,常用人名显示 
print(message.title())														   	# Hello,Python.
### 将字符串全部设置为大写或小写
print(message.upper())														   	# HELLO,PYTHON.
print(message.lower())														   	# hello,python.
### 除移字符串开始和结束位置的空白字符
message = "   string started with space, and end with space.    "		   
print(message.lstrip())														   	# string started with space, and end with space.    
print(message.rstrip())														   	#     string started with space, and end with space.
print(message.strip())														   	# string started with space, and end with space.

################################################################################
print("################################# 数字 #################################")
# 数字
## 整数与运算
int_a = 3
int_b = 2
#### str() 将数字转换成字符串形式,常用于字符串拼接
print("int_a + int_b = " + str(int_a+int_b))								   	# int_a + int_b = 5
print("int_a - int_b = " + str(int_a-int_b))								   	# int_a - int_b = 1
print("int_a * int_b = " + str(int_a*int_b))								   	# int_a * int_b = 6
#### 在python 2版本中两整数相除,结果显示仅有截取后的整数部分
print("int_a / int_b = " + str(int_a/int_b))								   	# int_a / int_b = 1 (Python 2)
#### 乘方运算
print("int_b ** int_a = "+ str(int_b**int_a))								   	# int_b ** int_a = 8

## 浮点数与运算
float_a = 3.0
float_b = 2.0
print("float_a + float_b = " + str(float_a+float_b))							# float_a + float_b = 5.0
print("float_a - float_b = " + str(float_a-float_b))						   	# float_a - float_b = 1.0
print("float_a * float_b = " + str(float_a*float_b))						   	# float_a * float_b = 6.0
print("float_a / float_b = " + str(float_a/float_b))						   	# float_a / float_b = 1.5 (Python 2)

################################################################################
print("############################### 列表 ###################################")
# 列表
## 定义一个列表
name_list = ["Marry","Ann","Lucy","Fiona"]
print(name_list)																# ['Marry', 'Ann', 'Lucy', 'Fiona']
print("指定位置元素:" + name_list[2])											# 指定位置元素:Lucy
print("从列表末尾反向指定位置元素:"+ name_list[-2])								# 从列表末尾反向指定位置元素:Lucy
print("通过len()获取列表长度为" + str(len(name_list)))								# 通过len()获取列表长度为4
## 在列表后追加																	
name_list.append("Cathy")
print(name_list)																# ['Marry', 'Ann', 'Lucy', 'Fiona', 'Cathy']
## 在列表中插入
name_list.insert(3, "Jane")														#['Marry', 'Ann', 'Lucy', 'Jane', 'Fiona', 'Cathy']
print(name_list)
## 删除列表中指定位置的元素
del name_list[2]
print(name_list)																# ['Marry', 'Ann', 'Jane', 'Fiona', 'Cathy']
## 从列表中弹出元素
name = name_list.pop()															# pop() 弹出列表尾部元素
print(name_list)																# ['Marry', 'Ann', 'Jane', 'Fiona']
print("弹出元素:"+name)	 														# 弹出元素:Cathy
## 从列表制定位置弹出元素
name = name_list.pop(2)															
print(name_list)																# ['Marry', 'Ann', 'Fiona']
print("弹出元素:"+name)															# 弹出元素:Jane
## 根据元素内容删除
name_list.remove("Fiona")
print(name_list)																# ['Marry', 'Ann']
## 对列表中的元素进行排序
name_list = ["Martin","Andy","Luis","Frank"]
### 临时性的
print(sorted(name_list))														# ['Andy', 'Frank', 'Luis', 'Martin']
print(sorted(name_list,reverse=True))											# ['Martin', 'Luis', 'Frank', 'Andy']

### 永久性的
print(name_list)																# 原始列表 ['Martin', 'Andy', 'Luis', 'Frank']
name_list.sort()
print(name_list)																# ['Andy', 'Frank', 'Luis', 'Martin']
name_list.sort(reverse=True)
print(name_list)																# ['Martin', 'Luis', 'Frank', 'Andy']

## 对列表中的元素逆序
name_list = ["Marry","Ann","Lucy","Fiona"]
name_list.reverse()
print(name_list)																# ['Fiona', 'Lucy', 'Ann', 'Marry']

################################################################################
print("######################### 列表的复制与切片 ##############################")
name_list = ["Martin","Andy","Luis","Frank"]
#### 通过指定开始和结束(不包含)位置获取列表切片.默认开始,结束是列表的队头和队尾+1
print(name_list[1:3])															# ['Andy', 'Luis']
print(name_list[:3])															# ['Martin', 'Andy', 'Luis']
print(name_list[3:])															# ['Frank']
print(name_list[:])																# ['Martin', 'Andy', 'Luis', 'Frank']
#### 列表变量的直接复制是引用的复制,而不产生新的副本。在原列表修改时,复制列表同样发生修改
copy_list = name_list
print(copy_list)
name_list.append("Calvin")
print(name_list)	
print(copy_list)																# ['Martin', 'Andy', 'Luis', 'Frank', 'Calvin']
#### 通过切片方式的复制,是对原列表创建副本。在原列表修改时,复制列表无影响
copy_list = name_list[:]
del name_list[4]
print(name_list)																# ['Martin', 'Andy', 'Luis', 'Frank']
print(copy_list)																# ['Martin', 'Andy', 'Luis', 'Frank', 'Calvin']

################################################################################
print("############################### 数值列表 ###############################")
# 数值列表
## 创建序列列表
#### range(start, end, step) 创建序列,默认步长为1
num_list = list(range(12,27))
print(num_list)																	# [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
num_list = list(range(12,27,2))
print(num_list)																	# [12, 14, 16, 18, 20, 22, 24, 26]
## 列表统计:最大,最小,求和
print(max(num_list))															# 26
print(min(num_list))															# 12
print(sum(num_list))															# 152
## 列表的解析
squares = [value** 2 for value in range( 1, 11)] 
print(squares)																	# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

################################################################################
print("############################### 元组 ###################################")
# 元组
## 创建不可修改的元素(元组)
const_value = (200,50)
print(const_value[0])                                                           # 200
print(const_value[1])                                                           # 50
## 元组的修改只能对整个元组重新赋值
const_value = (150,100)             
print(const_value)                                                              #(150, 100)

################################################################################
################################################################################
print("############################ for循环 ###################################")
name_list = ["Marry","Ann","Lucy","Fiona"]
#### 注意不要遗漏for语句最后的冒号,循环内语句通过缩进标记
#### My name is Marry
#### My name is Ann
#### My name is Lucy
#### My name is Fiona
#### Welcome all friends!
for name in name_list:
    print("My name is " + name)                                                 # 缩进语句表示循环内语句,按需要重复打印
print("Welcome all friends!")                                                   # 无缩进语句跳出循环,仅打印一次

################################################################################
print("############################# if判断 ###################################")
user_list = ["john", "anna","tom","bill"]
default_list = ["admin","user","customer"]
new_users = ["Marry", "Nancy","admin","William","JOHN"]
#### Marry, welcome to register
#### Nancy, welcome to register
#### user name adminis conflicted, please choose another name
#### William, welcome to register
#### user name JOHNis existed, please choose another name
for new_user in new_users:
    if new_user in default_list:
        print("user name " + new_user + "is conflicted, please choose another name")
    elif new_user.lower() in user_list:
        print("user name " + new_user + "is existed, please choose another name")
    else:
        print(new_user + ", welcome to register")
        user_list.append(new_user.lower())
print(sorted(user_list))                                                        # ['anna', 'bill', 'john', 'marry', 'nancy', 'tom', 'william'] 
## if语句中的逻辑判断
#### John, welcome come back
#### Anna, welcome come back
#### Tom, welcome come back
#### Bill, welcome come back
#### Marry, welcome come back
#### Manager Nancy, welcome come back
#### Manager William, welcome come back
for user in user_list:
    if user == "william" or user == "nancy":
        print("Manager " + user.title() + ", welcome come back")
    else:
        print(user.title() + ", welcome come back")

## if语句中的空列表判断
#### This is a new system!
empty_list = [] 
if empty_list:                                                                  # 列表不为空返回True
    for user in empty_list:
        print("Welcome! " + user)
else:
    print("This is a new system!")
################################################################################
print("############################# 数据字典 #################################")
## 定义数据字典
person = {'first_name': 'meng',
    'last_name':'cai',
    'age':'18',
    'job':'enginner'}
## print中的换行显示
print("My name is " + person['last_name'].title() 
    +" " + person['first_name'].title()
    +". I am an " + person['job'])                                              # My name is Cai Meng. I am an enginner
## 数据字典的遍历
#### key-value: job-enginner
#### key-value: first_name-meng
#### key-value: last_name-cai
#### key-value: age-18
for k,v in person.items():
    print("key-value: " + k + "-" + v)
## 数据字典键值遍历
#### job
#### first_name
#### last_name
#### age
### 键值遍历方法一(推荐)
for name in person.keys():
    print(name)
### 键值遍历方法二
for name in person:
    print(name)
## 按顺序遍历数据字典键值
#### age
#### first_name
#### job
#### last_name
for name in sorted(person.keys()):
    print(name)
### 数值遍历
#### enginner
#### meng
#### cai
#### 18
for v in person.values():
    print(v)
## set()集合来获取不重复值
#### python
#### c
#### java
#### perl
favorate_language = {'anna':'python',
    'bob':'c',
    'calvin': 'java',
    'david':'python',
    'ed':'perl',
    'fiona':'c'}
for language in set(favorate_language.values()):
    print(language)
## 列表存储字典
alian1 = {'color':'green','point':'5','speed':'slow'}
alian2 = {'color':'yellow','point':'10','speed':'medie'}
alian3 = {'color':'green','point':'10','speed':'slow'}
alian4 = {'color':'red','point':'15','speed':'fast'}
alian_list = [alian1, alian2, alian3, alian4]
for alian in alian_list:
    print('display an alian: ')
    print(alian)
    if (alian['color'] == 'green') and (alian['point'] == '10') :
        alian['color'] = 'yellow'
        print('new alian: ' )
        print(alian)
## 在字典中存储列表
prj_team = {'alian':['tom','alice','will'],
    'restaurant':['peter','monica', 'zoe','geoge']}
for k,v in prj_team.items():
    print("Project: " + k)
    for name in v:
        print("project " + k +  " welcome " + name + " join us")
## 在字典中存储字典
resp_data = {'code':'200',
    'data': {'message':'success','login':'caimeng','request':'policyNo'}}
print(resp_data)                                                                # {'code': '200', 'data': {'message': 'success', 'request': 'policyNo', 'login': 'caimeng'}}

################################################################################
'''
print("############################# while 循环 ###############################")
# 从键盘输入
in_num = int(raw_input("请输入一个100以内的整数 "))
print("你输入的数字是 " + str(in_num))
## 条件满足退出while循环
while in_num >= 50:
    in_num = int(raw_input("请输入一个100以内的整数 "))
    print("你输入的数字是 " + str(in_num))
print("条件判断结束")
## break退出while循环,
while True:
    in_num = int(raw_input("请输入一个100以内的整数 "))
    print("你输入的数字是 " + str(in_num))
    if in_num < 20:
        print("结束")
        break
    elif (in_num >=20) and (in_num < 50 ):
        print("正常")
    else:
        print("跳过")
        continue
    print("可以继续的输入")
print("条件判断结束")
'''
## 通过while动态操作列表
confirmed_list = []
waiting_list = ['NutsShell','FantastyBeast','ClickHouse',
    'Poision','FantastyBeast']
#### I have watched FantastyBeast
#### I have watched Poision
#### I have watched ClickHouse
#### I have watched FantastyBeast
#### I have watched NutsShell
while waiting_list:
    film = waiting_list.pop()
    print("I have watched " + film)
    confirmed_list.append(film)
print(confirmed_list)                                                           # ['FantastyBeast', 'Poision', 'ClickHouse', 'FantastyBeast', 'NutsShell']
while 'FantastyBeast' in confirmed_list:
    confirmed_list.remove('FantastyBeast')
print(confirmed_list)                                                           # ['Poision', 'ClickHouse', 'NutsShell']



















 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值