变量名命名规则:
字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,
也可以是双引号,
这种灵活性让你能够在字符串中包含引号和撇号:
'I told my friend, "Python is my favorite language!"'
"The language 'Python' is named after Monty Python, not the snake."
"One of Python's strengths is its diverse and supportive community."
使用 str.title()
首字母大写的方式显示每个单词
name = "ada lovelace"
print(name.title())
name = "Ada Lovelace"
print(name.upper()) # 全部转换大写
print(name.lower()) # 全部转换小写
Python使用加号( + )来合并字符串。
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print(full_name) # 输出ada lovelace
\t
制表符,\n
换行
print("Languages:\n\tPython\n\tC\n\tJavaScript")
Languages:
Python
C
JavaScript
age = 23
message = "Happy " + age + "rd Birthday!"
print(message)
报错
Traceback (most recent call last):
File "birthday.py", line 2, in
message = "Happy " + age + "rd Birthday!"
TypeError: Can't convert 'int' object to str implicitly
这是一个类型错误,意味着Python无法识别你使用的信息。在这个示例中,Python发现你使用了一个值为整数( int )的变量,但它不知道该如何解读这个值。Python知道,这个变量表示的可能是数值23,也可能是字符2和3。像上面这样在字符串中使用整数时,需要显式地指出你希望Python将这个整数用作字符串。为此,可调用函数 str()
,它让Python将非字符串值表示为字符串:
age = 23
message = "Happy " + str(age) + "rd Birthday!"
print(message)
1.Now is better than never.
你可以将余生都用来学习Python和编程的纷繁难懂之处,但这样你什么项目都完不成。不要企图编写完美无缺的代码;先编写行之有效的代码,再决定是对其做进一步改进,还是转而去编写新代码。
列表由一系列按特定顺序排列的元素组成。鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如 letters 、 digits 或 names )是个不错的主意。
在Python中,用方括号( [] )来表示列表,并用逗号来分隔其中的元素。例如,这个列表包含几种自行车:
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles) # 输出 ['trek', 'cannondale', 'redline', 'specialized']
列表是有序的集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0]) # 输出 trek
列表末尾插入元素
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.append('hahaha') # 往列表末尾插入 hahaha
列表中插入元素
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles) # ['ducati', 'honda', 'yamaha', 'suzuki']
列表中删除元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles) # ['honda', 'yamaha', 'suzuki']
del motorcycles[0] # 删除位于 0 位置的元素
print(motorcycles) # ['yamaha', 'suzuki']
list.pop():弹出列表最后一个元素,如果有值,则弹出指定元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles) # ['honda', 'yamaha', 'suzuki']
popped_motorcycle = motorcycles.pop() # 弹出列表最后一个元素,栈
print(motorcycles) # ['yamaha', 'yamaha']
print(popped_motorcycle) # suzuki
创建Dog类,与java十分类似。
dog.py
class Dog():
"""一次模拟小狗的简单尝试"""
def __init__(self, name, age):
"""初始化属性name和age"""
self.name = name
self.age = age
def sit(self):
"""模拟小狗被命令时蹲下"""
print(self.name.title() + " is now sitting.")
def roll_over(self):
"""模拟小狗被命令时打滚"""
print(self.name.title() + " rolled over!")
my_dog = Dog('willie', 6)
your_dog = Dog('lucy', 3)
print("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + "years old.")
my_dog.roll_over()
my_dog.sit()
your_dog.sit()
__init__()
是一个特殊的方法,每当你根据 Dog 类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。
一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。
创建一个车的子类,电动车
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 = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
"""看车开了多远"""
print("This car has " + str(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)
my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
给子类添加额外的属性–电瓶。
class Car():
snip
class ElectricCar(Car):
def __init__(self, make, model, year):
"""初始化父类的属性,继承"""
super().__init__(make, model, year)
self.battery_size = 70
def describe_battery(self):
"""打印一条描述电瓶容量的消息"""
print("This car has a " + str(self.battery_size) + "-kWh battery.")
my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
def ElectricCar(Car):
-- snip --
def fill_gas_tank():
"""电动汽车没有油箱"""
print("This car doesn't need a gas tank!")
在python中,一个文件就是一个模块,文件名即模块名
在car.py文件(模块名car
)中,我们定义了一个类Car,现在想在mycar.py文件中使用它from car import Car
在car模块中导入多个类,from car import Car, ElectricCar
导入整个模块,import car
存在文本文件,pi_digits.txt
3.1415926535
8979323846
2643383279
with open('pi_digits.txt') as file_object:
contents = file_object.read()
print(contents)
open()
打开文件pi_digits.txt
,要以任何方式使用文件——哪怕仅仅是打印其内容,都得先打开文件,这样才能访问它open()
接受一个参数:要打开的文件的名称。