马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
第一部分 基础知识
第1章 安装Python
第2章 变量中存储信息
- name = "ada lovelace"
- name.title() # 首字母大写的方式显示每个单词
- # Ada Lovelace
- print(name.upper()) # 全部大写 ADA LOVELACE
- print(name.lower()) # 全部小写 ada lovelace
- # 在字符串中插入变量的值,前引号前加上字母f
- # f字符串是Python 3.6引入的**
- first_name = "ada"
- last_name = "lovelace"
- full_name = f"{first_name} {last_name}"
- print(full_name)
- # ada lovelace
- # Python 3.5或更早的版本,需要使用format()方法
- full_name = "{} {}".format(first_name, last_name)
- print("\tPython") # 制表符\t
- # Python
- print("Languages:\nPython\nC") # 换行符\n
- # Languages:
- # Python
- # C
- favorite_language = ' python '
- ❷ >>> favorite_language.rstrip() # 删除末尾空白
- ' python'
- ❸ >>> favorite_language.lstrip() # 删除开头空白
- 'python '
- ❹ >>> favorite_language.strip() # 删除两边空白
- 'python'
复制代码 数
- >>> 2 + 3
- 5
- >>> 3 - 2
- 1
- >>> 2 * 3
- 6
- >>> 3 / 2
- 1.5
- # ========================
- >>> 3 ** 2
- 9
- >>> 3 ** 3
- 27
- # ========================
- >>> 2 + 3*4
- 14
- >>> (2 + 3) * 4 # 使用圆括号来修改运算次序,
- 20
- # ========================
- >>> 0.2 + 0.1 # 结果包含的小数位数可能是不确定
- 0.30000000000000004
- # ========================
- >>> 4/2 # 任意两个数相除时,结果总是浮点数,
- 2.0
- # ========================下述,只有Python 3.6和更高的版本支持。
- # 书写很大的数时,可使用下划线将其中的数字分组,使其更清晰易读:
- >>> universe_age = 14_000_000_000
- >>> print(universe_age) # 打印这种使用下划线定义的数时,Python不会打印其中的下划线:
- 14000000000
- # 这是因为存储这种数时,Python会忽略其中的下划线。
- # 在Python看来,1000与1_000没什么不同,1_000与10_00也没什么不同。
- # ========================
- >>> x, y, z = 0, 0, 0 # 同时给多个变量赋值
- # ========================
- # Python程序员会使用全大写来指出应将某个变量视为常量,其值应始终不变:
- MAX_CONNECTIONS = 5000
复制代码 第3章和第4章 列表、元组
在Python中,用方括号 [ ] 表现列表,并用逗号分隔其中的元素。
索引从0开始
Python通过将索引指定为-1,可让Python返回最后一个列表元素
- bicycles = ['trek', 'cannondale', 'redline', 'specialized']
- print(bicycles)
- # ['trek', 'cannondale', 'redline', 'specialized']
- ❶ print(bicycles[0]) # 访问列表元素
- # trek
- print(bicycles[-1])
- # specialized
- # ========================【1】修改列表元素
- ❶ motorcycles = ['honda', 'yamaha', 'suzuki'] # 例子1
- print(motorcycles)
- # ['honda', 'yamaha', 'suzuki']
- ❷ motorcycles[0] = 'ducati' # 【1】修改列表元素
- print(motorcycles)
- # ['ducati', 'yamaha', 'suzuki']
- # ========================【2】列表中添加元素
- motorcycles = ['honda', 'yamaha', 'suzuki'] # 例子2
- print(motorcycles)
- # ['honda', 'yamaha', 'suzuki']
- ❶ motorcycles.append('ducati') # 【2.1】列表末尾添加元素
- print(motorcycles)
- # ['honda', 'yamaha', 'suzuki', 'ducati']
- # ========================
- motorcycles = ['honda', 'yamaha', 'suzuki']# 例子3
- ❶ motorcycles.insert(0, 'ducati') #【2.2】列表中插入元素 insert()
- print(motorcycles)
- # ['ducati', 'honda', 'yamaha', 'suzuki']
- # ========================【3】列表中删除元素
- motorcycles = ['honda', 'yamaha', 'suzuki']# 例子4
- print(motorcycles)
- # ['honda', 'yamaha', 'suzuki']
- ❶ del motorcycles[0] # 【3.1】列表中删除(指定元素)用 del
- print(motorcycles)
- # ['yamaha', 'suzuki']
- # ========================
- motorcycles.pop() # 删除列表末尾的元素 pop()
- motorcycles.pop(0) # 指定要删除元素的索引
- motorcycles.remove('ducati') # 根据值删除元素
- # ========================# ========================
- cars.sort() # 对列表进行排序(正序)
- cars.sort(reverse=True) # 列表按与字母顺序(反序)
- sorted(cars) # 按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
- cars.reverse() # 倒着打印列表
- len(cars) # 确定列表的长度
- # ========================# ========================
- ❶ magicians = ['alice', 'david', 'carolina']
- ❷ for magician in magicians: # 遍历整个列表
- ❸ print(magician)
- # ========================# ========================
- for value in range(1, 5):
- print(value)
- # 1
- # 2
- # 3
- # 4
- numbers = list(range(1, 6)) # 使用range()创建数字列表
- print(numbers)
- # [1, 2, 3, 4, 5]
复制代码 range(2, 11, 2)
从2开始数,然后不断加2,直到到达或凌驾终值(11)
[2, 4, 6, 8, 10]
- >>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
- >>> min(digits) # 最大值
- 0
- >>> max(digits) # 最小值
- 9
- >>> sum(digits) # 总和
- 45
复制代码 输出名单上的最后三名队员,可使用切片players[-3:]
元组
创建一系列不可修改的元素,元组可以满足这种需求。
Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
但使用( ),而非 [ ] 来标识。
第5章 使用if语句。
- cars = ['audi', 'bmw', 'subaru', 'toyota']
- for car in cars:
- ❶ if car == 'bmw':
- print(car.upper())
- else:
- print(car.title())
- ❷ >>> car == 'bmw'
- True
复制代码 查抄多个条件
- ❷ >>> age_0 >= 21 and age_1 >= 21
- False
- ❷ >>> age_0 >= 21 or age_1 >= 21
- True
复制代码 查抄特定值是否包含在列表中
- ❶ >>> 'mushrooms' in requested_toppings
- True
- ❶ if user not in banned_users:
- print(f"{user.title()}, you can post a response if you wish.")
复制代码 if
if-else语句
- if age >= 18:
- print("You are old enough to vote!")
- print("Have you registered to vote yet?")
- else:
- print("Sorry, you are too young to vote.")
- print("Please register to vote as soon as you turn 18!")
复制代码 if-elif-else结构
- if age < 4:
- print("Your admission cost is $0.")
- elif age < 18:
- print("Your admission cost is $25.")
- .............
- else:
- print("Your admission cost is $40.")
复制代码 if-elif结构
else是一条包罗万象的语句,只要不满足任何if或elif中的条件测试,其中的代码就会执行。
这大概引入无效甚至恶意的数据。
如果知道最终要测试的条件,应考虑使用一个elif代码块来代替else代码块。
第6章 字典
- alien_0 = {'color': 'green', 'points': 5} # 字典
- print(alien_0['color']) # 访问字典中的值
- print(alien_0['points'])
- ❶ alien_0['x_position'] = 0 # 添加键值对/修改字典中的值
- alien_0 = {} # 创建一个空字典
- ❶ del alien_0['points'] # 删除键值对
- # 使用 get() 来访问值
- '''第一个参数用于指定键,是必不可少的;
- 第二个参数为指定的键不存在时要返回的值,'''
- point_value = alien_0.get('points', 'No point value assigned.')
- print(point_value)
- # 遍历所有键值对
- user_0 = {
- 'username': 'efermi',
- 'first': 'enrico',
- 'last': 'fermi',
- }
- for key, value in user_0.items():
- print(f"\nKey: {key}")
- print(f"Value: {value}")
- for name, language in favorite_languages.items():
- print(f"{name.title()}'s favorite language is {language.title()}.")
- for name in favorite_languages.keys(): # 遍历字典中的所有键
- print(name.title())
- for language in favorite_languages.values(): # 遍历字典中的所有值
- print(language.title())
- pizza = {
- 'crust': 'thick',
- 'toppings': ['mushrooms', 'extra cheese'], # 在字典中存储列表
- }
- users = {
- 'aeinstein': { # 在字典中存储字典
- 'first': 'albert',
- 'last': 'einstein',
- 'location': 'princeton',
- },
- 'mcurie': {
- 'first': 'marie',
- 'last': 'curie',
- 'location': 'paris',
- },
- }
复制代码 第7章 获取输入、while循环
- name = input("Please enter your name: ")
- print(f"\nHello, {name}!")
- height = input("How tall are you, in inches? ")
- height = int(height)
复制代码 求模运算符 %
- >>> 4 % 3
- 1
- >>> 5 % 3
- 2
- >>> 6 % 3
- 0
- >>> 7 % 3
- 1
复制代码 while循环
使用break退出循环
使用continue…
- current_number = 1
- while current_number <= 5:
- print(current_number)
- current_number += 1
- while True:
- city = input(prompt)
- if city == 'quit':
- break
- else:
- print(f"I'd love to go to {city.title()}!")
复制代码 第8章 函数
- def greet_user(username):
- """显示简单的问候语。"""
- print(f"Hello, {username.title()}!")
-
- greet_user('jesse')
- def get_formatted_name(first_name, last_name):
- """返回整洁的姓名。"""
- full_name = f"{first_name} {last_name}"
- return full_name.title() #返回
复制代码 传递恣意数量的实参
形参名*toppings中的星号让Python创建一个名为toppings的空元组,并将收到的全部值都封装到这个元组中。函数体内的函数调用print()通过生成输出,证明Python可以或许处理使用一个值来调用函数的情形,也能处理使用三个值来调用函数的情形。它以雷同的方式处理不同的调用。
留意,Python将实参封装到一个元组中,即便函数只收到一个值:
- def make_pizza(*toppings):
- """打印顾客点的所有配料。"""
- print(toppings)
-
- make_pizza('pepperoni')
- make_pizza('mushrooms', 'green peppers', 'extra cheese')
- # ('pepperoni',)
- # ('mushrooms', 'green peppers', 'extra cheese')
复制代码 使用恣意数量的关键字实参
形参**user_info中的两个星号让Python创建一个名为user_info的空字典,并将收到的全部名称值对都放到这个字典中。
在这个函数中,可以像访问其他字典那样访问user_info中的名称值对。
- def build_profile(first, last, **user_info):
- """创建一个字典,其中包含我们知道的有关用户的一切。"""
- user_info['first_name'] = first
- user_info['last_name'] = last
- return user_info
-
- user_profile = build_profile('albert', 'einstein',
- location='princeton',
- field='physics')
- print(user_profile)
复制代码 导入整个模块
- # pizza.py
- def make_pizza(size, *toppings):
- """概述要制作的比萨。"""
- print(f"\nMaking a {size}-inch pizza with the following toppings:")
- for topping in toppings:
- print(f"- {topping}")
-
- # making_pizzas.py
- import pizza
- pizza.make_pizza(16, 'pepperoni')
复制代码 导入特定的函数
使用 as 给函数指定别名
- from module_name import function_name
- from module_name import function_name as mp # 使用 as 给函数指定别名
- from pizza import * # 导入模块中的所有函数
复制代码 第9章 类
init() 是一个特殊方法,每当你根据Dog类创建新实例时,Python
都会自动运行它。
包含三个形参:self、name和age。
形参self必不可少,而且必须位于其他形参的前面。
- class Dog:
- """一次模拟小狗的简单尝试。"""
-
- def __init__(self, name, age):
- """初始化属性name和age。"""
- self.name = name
- self.age = age
-
- def sit(self):
- """模拟小狗收到命令时蹲下。"""
- print(f"{self.name} is now sitting.")
-
- def roll_over(self):
- """模拟小狗收到命令时打滚。"""
- print(f"{self.name} rolled over!")
- # 根据类创建实例
- my_dog = Dog('Willie', 6)
- my_dog.name #访问属性
- my_dog.sit() #调用方法
复制代码 继承
- class Car:
- """一次模拟汽车的简单尝试。"""
- def __init__(self, make, model, year):
- self.make = make
- self.model = model
- self.year = year
- self.odometer_reading = 0
- def get_descriptive_name(self):
- long_name = f"{self.year} {self.make} {self.model}"
- return long_name.title()
- def read_odometer(self):
- print(f"This car has {self.odometer_reading} miles on it.")
- def update_odometer(self, mileage):
- if mileage >= self.odometer_reading:
- self.odometer_reading = mileage
- else:
- print("You can't roll back an odometer!")
- def increment_odometer(self, miles):
- self.odometer_reading += miles
-
- class ElectricCar(Car):
- """电动汽车的独特之处。"""
- def __init__(self, make, model, year):
- """初始化父类的属性。"""
- super().__init__(make, model, year) # super() 让能够调用父类的方法。
- my_tesla = ElectricCar('tesla', 'model s', 2019)
- print(my_tesla.get_descriptive_name())
复制代码- >>> from random import randint
- >>> randint(1, 6) # 生成一个位于1和6之间的随机整数
- 3
复制代码 第10章 文件、如何处理错误(Python非常)
读取整个文件
- with open('pi_digits.txt') as file_object:
- contents = file_object.read()
-
- print(contents)
复制代码 文件路径
Windows体系使用反斜杠(\)
- with open('text_files/filename.txt') as file_object:
复制代码 逐行读取
- filename = 'pi_digits.txt'
- with open(filename) as file_object:
- for line in file_object:
- print(line)
- 3.1415926535
- 8979323846
- 2643383279
复制代码 要消除这些多余的空缺行,可在函数调用print()中使用rstrip()
- filename = 'pi_digits.txt'
- with open(filename) as file_object:
- for line in file_object:
- print(line.rstrip())
- 3.1415926535
- 8979323846
- 2643383279
复制代码 使用文件的内容
- filename = 'pi_digits.txt'
- with open(filename) as file_object:
- lines = file_object.readlines()
- pi_string = ''
- for line in lines:
- pi_string += line.rstrip()
-
- print(pi_string)
- print(len(pi_string))
复制代码 第11章 测试
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |