《python程序设计与问题求解》笔记

北城余情 提交于 2020-01-21 05:20:29

一、字符串连接

可以使用串联运算符“+”连接两个或多个字符串以形成新的字符串。

print("hello! " + "I " + "am " + "xiaoming")
# 运行结果:  hello! I am xiaoming

“*”运算符可以重复给定的次数。

print("+" * 20)
# 运行结果: ++++++++++++++++++++

二、变量名及附值语句

变量引用:初始化变量后,表达式中变量名的后续使用称为变量引用。
变量名:必须以字母或下划线(_)开头,并且包含任意数量的字母、数字或其他下划线,python中变量名区分大小写。
变量在程序中有两个重要目的:
1、帮助程序员跟踪时间变化的数据
2、允许程序员用简单的名字引用复杂的信息。
抽象:任何时候,如果可以用一个简单的东西替换一个更复杂的东西,简化的过程叫做抽象。

三、算术表达式

算术表达式是由操作数和运算符组成。算术运算符:

运算符 含义及语法
- 求反-a
** 幂a**b
/ 除法a/b
// 商a//b
% 取余或者求模a%b

注意:3//4结果为0,3/4结果为.75。

四、不换行打印

用end=“”空串

for i in range(4):
    print(i, end="")
# 结果为:0123

五、遍历数据序列的内容

1、函数range生成的数字序列被送到python的list函数,该函数返回一种特殊类型的序列,称为列表。

my_list = list(range(4))
print(my_list)
# 结果为:[0, 1, 2, 3]

2、用for循环遍历字符串:

for character in "Hi xiaoming":
    print(character, end=" ")
# 结果为:H i   x i a o m i n g 

3、用for循环遍历列表:

for number in [6, 4, 8]:
    print(number, end=" ")
结果为:6 4 8 

4、向下计数的循环:
range (1)单个参数M指定数字0到M-1的序列;(2)两个参数M和N指定数字M到N-1;
(3)步长S为正时,M到N-1 ;步长为负时,M到N+1。

for count in range(10, 0, -1):
    print(count, end=" ")
# 结果为:10 9 8 7 6 5 4 3 2 1 

六、短路计算

A and B 中,如果A是假的,那么表达式也是假的,没有必要考虑B
A or B 中,如果A是真的,那么表达式也是真的,没有必要考虑B
这种计算尽快停止的方法称为短路计算。

count = int(input("Enter the count: "))
theSum = int(input("Enter the sum: "))
if count > 0 and theSum // count > 10:
    print("average > 10")
else:
    print("count = 0 or theSum // count > 10")

在这里插入图片描述在这里插入图片描述

七、随机数

函数random.rangdint 返回两个参数指定范围内的随机数(包括这两个数本身)。

import random
for roll in range(10):
    print(random.randint(1, 6), end=" ")

在这里插入图片描述

八、字符串引用

1、下标运算符[]

python允许用负下标访问字符串末尾或附近的字符,-1代表从右边开始访问。

name = "I am xiaoming"
print(name[0], end="")
print(name[1],end="")
print(name[2], end="")
print(name[(len(name))-1], end="")
print(name[-1], end="")

在这里插入图片描述

2、用计算控制循环显示字符及其位置

data = "I am xiaoming"
for index in range(len(data)):
    print(index, data[index])

在这里插入图片描述

3、字符串切片

下标[start:] 子字符串包含从开头到结尾的字符
下标 [ :end] 子字符包含第一个到end -1
下标[start:end]子字符串包括开始到end-1

print("【字符串切片】")
string_test = "0123456789"
print('删头:', string_test[2:])
print('删尾:', string_test[:-2])
print('Left:\t', string_test[:3])
print('Right:\t', string_test[-3:])
print('Mid:\t', string_test[1:3])
print('Mid:\t', string_test[3:7])
print('-'*30)

九、字符串方法

1、split ()

用来获得包含在输入字符串中的单词列表
Python中有split()和os.path.split()两个函数,具体作用如下:
split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
os.path.split():按照路径将文件名和路径分割开

sentence = input("Enter a sentence:")
list_word = sentence.split()
print(list_word)

在这里插入图片描述

2、字符串方法总结:

在这里插入图片描述
在这里插入图片描述

十、文本文件

在这里插入图片描述
在这里插入图片描述

十一、列表操作

1、列表常用的运算符和函数:

在这里插入图片描述

2、替换列表中的元素

my_list = [1, 2, 3, 4]
for index in range(len(my_list)):
    my_list[index] = my_list[index] ** 2
print(my_list)
# 结果为:[1, 4, 9, 16]

3、插入和删除列表中的元素

pop()方法默认删除列表中最后一个元素,并将删除元素作为返回值返回。是不是不能返回
可以指定位置的元素

my_list = [1, 2, 3, 4]
my_list.pop(0)
print(my_list)
# 结果为:[2, 3, 4]

在这里插入图片描述

4、排序列表sort()

my_list = [12, 2, 5, 28]
my_list.sort()
print(my_list)
# 结果为:[2, 5, 12, 28]

十二、字典操作

1、常用字典操作

按ctrl建+左键可查看函数源码
或help(dict)查看
在这里插入图片描述

2、遍历字典

# 字典插入key、value值
my_diction = {}
my_diction["name"] = "xiaoming"
my_diction["weigh"] = "120"
my_diction["high"] = "180"
# 访问字典
print(my_diction)
print(my_diction["name"])
print("-" * 30)

# 第一种用for循环遍历
for key in my_diction:
    print(key, my_diction[key])
print("-" * 30)
# 第二种用for循环遍历
for (key, values) in my_diction.items():
    print(key, values)
print("-" * 30)

# 第三种用keys() values()方法
print(list(my_diction.keys()))
print(list(my_diction.values()))

在这里插入图片描述

十三、同物判断、等值判断

又称对象标识符相等和结构相等。两个变量指向同一个对象的关系称为对象标识符相等,而指向不同的内容一样的对象的情况称为结构相等。==无法判断这两种关系。is测试对象标识符相等,如果两个操作数指向同一个对象,则返回True,如果两个操作数指向不同对象(即使内容完全一样),返回False。

print("【同物判断、等值判断】")
obj1 = [1, 2, 3]
obj2 = [1, 2, 3]
obj3 = obj2
if obj1 is obj2:
    print('obj1和obj2是一个东西')
else:
    print('obj1和obj2不是一个东西')
# end if
if obj1 == obj2:
    print('obj1和obj2的值相同')
else:
    print('obj1和obj2的值不同')
# end if
if obj2 is obj3:
    print('obj2和obj3是一个东西')
else:
    print('obj2和obj3不是一个东西')
# end if
print('-'*30)
# ------------------------------

first = [1, 2, 3, 4]
second = first
third = list(first)
if first == second:
    print("first和second变量值相等")
else:
    print("first和second变量值不等")
print('-'*30)

print(first is second)  
print(first is third)
print('-'*30)

if first is third:
    print("first和third是同一个东西")
else:
    print("first和third不是同一个东西")
print('-'*30)

十四、跟踪递归函数

# summation函数用来计算lower、upper范围内数字的和并返回
def summation(lower, upper, margin):
    blanks = " " * margin
    print(lower, upper, margin)
    if lower > upper:
        print(blanks, 0)
        return 0
    else:
        result = lower + summation(lower+1, upper, margin+4)
        print(blanks, result)
        return result


if __name__ == '__main__':
    summation(1, 4, 0)

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!