1、python与其他语言的对比(hello world)
C语言
include<stdio.h>
int main()
{
printf("hello world");
return 0;
}
Java语言
public class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Python
print('hello world')
2、python中的常用数据类型
- Number
- String
- List
- Tuple
- Dictionary
# Number
a = 1
b = True
c = 3.15
d = 1.1+2.2j
# 字符串
str1 = 'hello'
str1_1 = "hello"
str2 = "world"
print(str1==str1_1)
# 字符串连接
str3 = str1 + str2
print(str3)
# 转义字符
str4 = 'hello \n world'
print(str4)
str5 = 'hello \\n world'
print(str5)
# 格式化输出
print('str1:%s.'%str1)
# 切片
print(str1[1:4])
True
helloworld
hello
world
hello \n world
str1:hello.
ell
# 列表
list1 = ['google', 'alibaba', 2001, 3.14]
# 通过下标访问
print(list1[0])
# 更新列表
list1[2] = 'baidu'
print(list1)
# 删除元素
del list1[3]
print(list1)
# 拼接列表
list2 = ['microsoft', 'amazon']
list3 = list1 + list2
print(list3)
# 增添列表项
list1.append('jingdong')
print(list1)
google
['google', 'alibaba', 'baidu', 3.14]
['google', 'alibaba', 'baidu']
['google', 'alibaba', 'baidu', 'microsoft', 'amazon']
['google', 'alibaba', 'baidu', 'jingdong']
# 元组:类似列表,是一系列元素的有序集合,但元组中的元素无法修改
tuple1 = ('google', 'alibaba', 'baidu')
tuple1[0] = 'amazon' # 不能被改变
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-23-4ed3e334c834> in <module>
1 # 元组:类似列表,是一系列元素的有序集合,但元组中的元素无法修改
2 tuple1 = ('google', 'alibaba', 'baidu')
----> 3 tuple1[0] = 'amazon'
TypeError: 'tuple' object does not support item assignment
# 字典
dict1 = {
'color': 'green',
'points': 5
}
# 访问列表中的值
print(dict1['color'])
# 增加字典中键值对
dict1['x_pos'] = 0
dict1['y_pos'] =4
print(dict1)
green
{'color': 'green', 'points': 5, 'x_pos': 0, 'y_pos': 4}
3、python中的结构语句
3.1、if条件语句
car = 'bmw'
if car == 'bmw':
print(car.upper()) # 输出car的大写版本
else:
print(car.title()) # 输出car的标题版本
Bmw
现实世界中,很多情况下需要考虑的情形都超过两个。例如,来看一个根据年龄段收费的 游乐场:
- 4岁以下免费;
- 4~18岁收费5美元;
- 18岁(含)以上收费10美元。
如果只使用一条 if 语句,如何确定门票价格呢?下面的代码确定一个人所属的年龄段,并打印一条包含门票价格的消息:
age = 12
if age < 4:
print("Your admission cost is $0.")
elif age < 18:
print("Your admission cost is $5.")
else:
print("Your admission cost is $10.")
Your admission cost is $5.
3.2、for循环语句
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:
print('当前水果:%s'%fruit)
当前水果:banana
当前水果:apple
当前水果:mango
# range 步长为1
for i in range(0, 6):
print(i)
1
2
3
4
5
# range 步长为2
for i in range(0, 6, 2):
print(i)
0
2
4
# break 和 continue
for i in range(0, 6):
if i == 3:
break
print(i)
for i in range(0, 6):
if i == 3:
continue
print(i, end='')
0
1
2
01245
3.3、while循环语句
# while循环
current_number = 1
while current_number <= 5:
print(current_number)
current_number += 1
1
2
3
4
5
3.4、函数
def greet_user(username):
""" 显示简单的问候语 """
print("Hello, " + username.title() + "!")
greet_user('jesse')
greet_user('jack')
Hello, Jesse!
Hello, Jack!
# 有返回值的函数
def add(a, b):
return a+b
print('第一个函数:%d'%add(2, 3))
# 列表作为参数的函数
def add_l(mylist):
result = 0
for l in mylist:
result += l
return result
print('第二个函数:%d'%add_l([1, 2, 3, 4]))
# 有多个返回值的函数
def muti_re(mylist):
a = max(mylist)
b = min(mylist)
return a, b
a, b = muti_re([1, 2, 3, 4])
print('第三个函数, 最大值:%d, 最小值:%d'%(a,b))
第一个函数:5
第二个函数:10
第三个函数, 最大值:4, 最小值:1
有时候,你预先不知道函数需要接受多少个实参, 但是Python允许函数从调用语句中收集任意数量的实参。
例如,来看一个制作比萨的函数,它需要接受很多配料,但你无法预先确定顾客要多少种配 料。下面的函数只有一个形参 *toppings ,但不管调用语句提供了多少实参,这个形参都将它们 统统收入囊中:
def make_pizza(*toppings):
print(toppings)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')
('pepperoni',)
('mushrooms', 'green peppers', 'extra cheese')
3.5、类
面向对象编程是最有效的软件编写方法之一。在面向对象编程中, 你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。 编写类时,你定义一大类对象都有的通用行为。基于类创建对象时, 每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独 特的个性。使用面向对象编程可模拟现实情景,其逼真程度达到了令 你惊讶的地步。 根据类来创建对象被称为实例化,这让你能够使用类的实例。在 本章中,你将编写一些类并创建其实例。你将指定可在实例中存储什 么信息,定义可对这些实例执行哪些操作。你还将编写一些类来扩展 既有类的功能,让相似的类能够高效地共享代码。你将把自己编写的类存储在模块中,并在 自己的程序文件中导入其他程序员编写的类
使用类几乎可以模拟任何东西。下面来编写一个表示小狗的简单类 Dog ——它表示的不是特 定的小狗,而是任何小狗。对于大多数宠物狗,我们都知道些什么呢?它们都有名字和年龄;我 们还知道,大多数小狗还会蹲下和打滚。由于大多数小狗都具备上述两项信息(名字和年龄)和 两种行为(蹲下和打滚),我们的 Dog 类将包含它们。这个类让Python知道如何创建表示小狗的对 象。编写这个类后,我们将使用它来创建表示特定小狗的实例。
# 创建类
class Dog():
def __init__(self, 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!")对字符串的大小写进行更改
类中的函数称为方法;你前面学到的有关函数的一切都适用于方法,就目前而言,唯一重要 的差别是调用方法的方式。方法 init() 是一个特殊的方法,每当你根据 Dog 类创建新实 例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约 定,旨在避免Python默认方法与普通方法发生名称冲突。
# 根据类创建实例
my_dog = Dog('willie', 6)
print("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + " years old.")
My dog's name is Willie.
My dog is 6 years old.
# 访问类的属性
my_dog.name
'willie'
# 调用类的方法
my_dog.sit()
my_dog.roll_over()
Willie is now sitting.
Willie rolled over!
4、对字符串的一些操作
4.1、对字符串的大小写进行更改
# 对字符串的大小写进行更改
name = "ada lovelace"
print(name.title())
name = "Ada Lovelace"
print(name.upper())
print(name.lower())
Ada Lovelace
ADA LOVELACE
ada lovelace
4.2、合并/拼接字符串
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print(full_name)
ada lovelace
4.3、使用制表符或换行符来添加空白
print("\tPython")
print("Languages:\nPython\nC\nJavaScript")
Python
Languages:
Python
C
JavaScript
4.4、删除空白
favorite_language = ' python '
# 删除末尾的空白
favorite_language.rstrip()
# 删除开头的空白
favorite_language.lstrip()
'python '
4.5、字符串分割
my_languages = 'python,C,JAVA,PHP,MATLAB'
languages_list = my_languages.split(',')
print(languages_list)
print(languages_list[0])
print(languages_list[0][3])
['python', 'C', 'JAVA', 'PHP', 'MATLAB']
python
h