Python快速入门

安装python和PyCharm

python下载地址:Download Python | Python.org

PyCharm下载地址:Download PyCharm: Python IDE for Professional Developers by JetBrains

print

print("丘桔麻麻");

print("哈喽" +  " 这是一串代码" + " 哈哈");

print('She said "let\'s go"');

print("我是第一行\n我是第二行");

print();

print("""锄禾日当午
汗滴禾下土
谁知盘中餐
粒粒皆辛苦""");

显示结果

变量 

greet_chinese = "您好,吃了么? "
greet_english = "Yo, what's up, "
print(greet_chinese + "张三")
print(greet_english + "李四")

显示结果

数学运算

import math

a = 1;
b = 9;
c = 20;
delta = b**2 - 4*a*c;
x1 = (-b + math.sqrt(delta))/(2*a);
x2 = (-b - math.sqrt(delta))/(2*a);
print(x1);
print(x2);

显示结果

注释 

#这是一段注释
#不会执行

数据类型

字符串str、整数int、浮点数float、布尔类型bool(只有2个值:True和False,注意:首字母要大写,不能写成true和false)、空值类型NoneType(只有一种值为None,首字母也要大写)

交互模式

命令行模式:执行python文件

交互模式:一行一行执行,不需要print就可以看到返回结果

 平时我们使用最多的是命令行模式,因为交互模式输入的所有指令都不会被保存

input

注意:input()函数的返回值是字符串类型,可以用  int() 转换为整数,也可以用float()转为为浮点数

  

条件语句

mood_index = int(input("对象今天的心情指数:"))
if mood_index >= 60:
    print("恭喜,今晚应该可以打游戏,去吧皮卡丘")
    print("(*^▽^*)")
else:
    print("为了自个儿小命,还是别打了")

逻辑运算

关键字:not、and、or

优先级:not >and>or

列表

注意:python的列表可以存放不同类型的值

代码:

shopping_list = ["键盘",True]
print(shopping_list)
shopping_list.append("鼠标")
print(shopping_list)
shopping_list.remove(True)
print(shopping_list)
print(shopping_list[0])
shopping_list[0] = "笔记本"
print(shopping_list)
print(len(shopping_list))

显示结果:

 代码:

price = [933,560,20,1234]
max_price = max(price)
print(max_price)
min_price = min(price)
print(min_price)
sorted_price = sorted(price)
print(sorted_price)

显示结果:

字典 

字典相当于java里面的map,可以用来存放键值对(key:value),其中key是不能变的

phone={"张三":"12300000000","李四":"56700000000"}

但是如果通讯录里面有2个张三,就是同时需要名字和年龄才能区分电话号码,列表又不能作为key(因为列表可变),咋办嘞?可以用元组tuple

# 元组(tuple)
user1 = ("张三",23)
user2 = ("张三",33)

元组和列表的区别:

1、元组用(),列表用[]

2、元组不可变,不能添加、删除元素;列表可变

用元组作为key:

phone = {("张三",23):"12300000000", ("张三",33):"12300000002", ("李四",44):"56700000000"}

字典的使用:

1、代码

age = {"小红":11, "小张":22, "小明":33, "小菜":44}
#增加一条数据
age["小華"] = 24
print(age)
#删除一条数据
del age["小明"]
print(age)
#修改一条数据
age["小张"] = 8
print(age)
#查询某个key是否存在
exist = "小明" in age
print(exist)

显示结果:

2、代码

age = {"小红":11, "小张":22, "小明":33, "小菜":44}
user = input("你想查谁的年龄?")
if user in age:
    print(user + "的年龄为:" + str(age[user]))
else:
    print("查无此人")
    print("当前字典总共有" + str(len(age)) + "条数据")

显示结果:

for循环

1、代码

temperature_dict = {"Q001":36.4,"Q002":38.2,"Q003":36.9,"Q004":37.0,"Q005":37.6,"Q006":38.0}
#temperature_dict.keys()	所有key
#temperature_dict.values()	所有value
#temperature_dict.items()	所有键值对
#找出发烧的员工
for temperature_tuple in temperature_dict.items():
	staff_id = temperature_tuple[0]
	temperature = temperature_tuple[1]
	if temperature >= 38:
		print(staff_id + "发烧了,体温为 " + str(temperature) + " 度")

运行结果:

Q002发烧了,体温为 38.2 度
Q006发烧了,体温为 38.0 度

2、代码

#求1-100奇数和
total = 0
#注意:range的区间是左闭右开,即for i in rage(1,5)时,i的取值为1,2,3,4
for i in range(1,100,2): 
	total = total + i
print(total)
	

运行结果:

2500

while循环

print("哈喽呀~我是一个求平均值的程序")
user_input = input("请输入数字(完成所有数字输入之后,请输入q终止程序):")
total = 0
count = 0
while user_input != "q":
    total = total + int(user_input)
    count = count + 1
    user_input = input("请输入数字(完成所有数字输入之后,请输入q终止程序):")
average = total/count
print("平均值为:" + str(average))

运行结果

格式化字符串

1、代码

people = ["张三","李四","王五","赵六","小红","小花","小明"]
year = "虎"
for name in people:
	message = "祝{0}同学{1}年快乐".format(name,year)
	print(message)

运行结果:

祝张三同学虎年快乐
祝李四同学虎年快乐
祝王五同学虎年快乐
祝赵六同学虎年快乐
祝小红同学虎年快乐
祝小花同学虎年快乐
祝小明同学虎年快乐

2、可以把之前的参数下标,替换为参数值

people = ["张三","李四","王五","赵六","小红","小花","小明"]
year = "虎"
for name in people:
	message = "祝{this_name}同学{this_year}年快乐".format(this_name = name, this_year = year)
	print(message)

3、也可以给字符串加前缀 f ,花括号中的内容会被直接求值

people = ["张三","李四","王五","赵六","小红","小花","小明"]
year = "虎"
for name in people:
	message = f"祝{name}同学{year}年快乐"
	print(message)

4、还可以对数字进行格式化

代码:

score_dict = {"张三":33.333,"李四":44.4444,"王五":55.555555,"赵六":66.6666666}
for name,score in score_dict.items():
	message = "{0}同学你好,你的分数为:{1:.2f}".format(name,score)
	print(message)

虽然score是浮点数,但是用format方法的时候,不需要手动转换为字符串,还可以用.nf指定保留几位小数,比如.2f就是指定保留2为小数

运行结果:

张三同学你好,你的分数为:33.33
李四同学你好,你的分数为:44.44
王五同学你好,你的分数为:55.56
赵六同学你好,你的分数为:66.67

函数

1、代码

#计算圆面积
def area(radius):
	area = 3.14 * (radius**2)
	print(area)
	
area(10)
area(100)

显示结果:

314.0
31400.0

2、代码

#计算BMI指数:BMI = 体重/(身高**2)
def calculate_BMI(height, weight):
	user_bmi = weight/(height**2)
	if user_bmi <= 18.5:
		print("你的BMI分类为:偏瘦")
	elif 18.5 < user_bmi <= 25:
		print("你的BMI分类为:正常")
	elif 25 < user_bmi <= 30:
		print("你的BMI分类为:偏胖")
	elif user_bmi > 30:
		print("你的BMI分类为:肥胖")
	return user_bmi
		
bmi1 = calculate_BMI(1.66, 60)
print(str(bmi1))
bmi2 = calculate_BMI(1.90, 60)
print(str(bmi2))

显示结果

你的BMI分类为:正常
21.773842357381334
你的BMI分类为:偏瘦
16.62049861495845

引入模块

from statistics import *
#求中位数
print(median([19,-5,-100,99,188]))

显示结果

19

创建类

1、代码

class CuteCat:
    def __init__(self,cat_name,cat_age,cat_color):
        self.name = cat_name
        self.age = cat_age
        self.color = cat_color

cat1 = CuteCat("招财",2,"橘色")
print(f"小猫{cat1.name}今年{cat1.age}岁了,颜色是{cat1.color}")

显示结果

小猫招财今年2岁了,颜色是橘色

2、代码

class Student:
    def __init__(self,student_name,student_no):
        self.name = student_name
        self.no = student_no
        self.grades = {"语文": 0, "数学": 0, "英语": 0}
    def set_grade(self,course,grade):
        if course in self.grades:
            self.grades[course] = grade
    def print_grades(self):
        print(f"{self.name}同学(学号:{self.no})的成绩如下:")
        for course in self.grades:
            print(f"{course}成绩为{self.grades[course]}")

zhang = Student("张三",1003)
print(f"{zhang.name}同学的学号为:{zhang.no}")
zhang.set_grade("语文",55)
zhang.set_grade("数学",66)
zhang.set_grade("英语",77)
zhang.print_grades()

显示结果

张三同学的学号为:1003
张三同学(学号:1003)的成绩如下:
语文成绩为55
数学成绩为66
英语成绩为77

继承

1、代码

class Animal:
	def __init__(self,name,sex):
		self.name = name
		self.sex = sex
		self.eyes_num = 2
	def breathe(self):
		print(self.name + "在呼吸")
	def shit(self):
		print(self.name + "在拉屎")
		
class Human(Animal):
	def __init__(self,name,sex):
		super().__init__(name,sex)
		self.has_tail = False
	def read(self):
		print(self.name + "在看书")

class Cat(Animal):
	def __init__(self,name,sex):
		super().__init__(name,sex)
		self.has_tail = True
	def srcath_sofa(self):
		print(self.name + "在抓沙发")
	def shit(self):
		print(self.name + "在沙发上拉屎")

cat1 = Cat("招财","男")
print(f"{cat1.name}小猫咪,是{cat1.sex}的,有{cat1.eyes_num}只眼睛,是否有尾巴:{cat1.has_tail}")
cat1.breathe()
cat1.srcath_sofa()
cat1.shit()

human1 = Human("张三","男")
print(f"{human1.name}小朋友,是{human1.sex}的,有{human1.eyes_num}只眼睛,是否有尾巴:{human1.has_tail}")
human1.breathe()
human1.read()
human1.shit()

显示结果

招财小猫咪,是男的,有2只眼睛,是否有尾巴:True
招财在呼吸
招财在抓沙发
招财在沙发上拉屎
张三小朋友,是男的,有2只眼睛,是否有尾巴:False
张三在呼吸
张三在看书
张三在拉屎

2、代码

class Employee:
	def __init__(self,name,id):
		self.name = name
		self.id = id
	def print_info(self):
		print("姓名:" + self.name)
		print("工号:" + str(self.id))
	
class FullTimeEmployee(Employee):
	def __init__(self,name,id,monthly_salary):
		super().__init__(name,id)
		self.monthly_salary = monthly_salary
	def calculate_monthly_pay(self):
		return self.monthly_salary
		
class PartTimeEmployee(Employee):
	def __init__(self,name,id,daily_salary,work_days):
		super().__init__(name,id)
		self.daily_salary = daily_salary
		self.work_days = work_days
	def calculate_monthly_pay(self):
		return self.daily_salary * self.work_days

zhangsan = FullTimeEmployee("张三","1001",8500)
zhangsan.print_info()
print(zhangsan.calculate_monthly_pay())
lisi = PartTimeEmployee("李四","1002",160,22)
lisi.print_info()
print(lisi.calculate_monthly_pay())

显示结果

姓名:张三
工号:1001
8500
姓名:李四
工号:1002
3520

文件

文件模式作用
r(read)只读
w(write)只写
a(append)追加
r+可读可写

1、读文件 

读取文件的方法作用
read返回全部文件内容的字符串
readline返回一行文件内容的字符串
readlines返回全部文件内容组成的列表

在桌面创建一个文件.txt

1)、read()

file = open("C:\\Users\\Administrator\\Desktop\\文件.txt","r",encoding="utf-8")
print(file.read())  #会读全部的文件内容,并打印
print(file.read())  #会读空字符串,并打印

 显示结果

在文件特别大的情况下,最好不要用read(),因为读出来的内容会占用很大的内存,甚至把内存给爆了。如果你不想一次性读完整个文件,可以给read()传一个数字,表示读多少字节,下一次调用read()的时候,就会从那个位置继续往下读

file = open("C:\\Users\\Administrator\\Desktop\\文件.txt","r",encoding="utf-8")
print(file.read(8)) #会读第1-8个字节的文件内容(换行符也算一个字节)
print(file.read(8)) #会读第9-16个字节的文件内容

显示结果

2)、readline()

file = open("C:\\Users\\Administrator\\Desktop\\文件.txt","r",encoding="utf-8")
print(file.readline()) #readline()只会读一行的内容,它会根据换行符来判断,什么时候算一行结尾
print(file.readline()) #继续读下一行

 显示结果

readline()一般和while循环一起用

file = open("C:\\Users\\Administrator\\Desktop\\文件.txt","r",encoding="utf-8")
line = file.readline()
while line != "":
    print(line)
    line = file.readline()

 显示结果

3)、readlines()

file = open("C:\\Users\\Administrator\\Desktop\\文件.txt","r",encoding="utf-8")
lines = file.readlines()    #readlines()会读取全部文件的内容,并把每行作为列表元素返回
print(lines)
for line in lines:
    print(line)

显示结果

2、关闭文件 

1)close()

file = open("C:\\Users\\Administrator\\Desktop\\文件.txt","r",encoding="utf-8")
print(file.read())
file.close()    #关闭文件,释放资源,每次完成文件读写操作后,都要关闭文件

2)with

with open("C:\\Users\\Administrator\\Desktop\\文件.txt","r",encoding="utf-8") as file:
    print(file.read())

3、写文件

#如果文件不存在,程序就会根据路径和文件名,自动创建一个文件
#用w模式写文件的话,如果文件已经存在,会把原本的文件内容情况
file = open("C:\\Users\\Administrator\\Desktop\\写文件.txt","w",encoding="utf-8")
file.write("假如有一天我变得很有钱\n")
file.write("做的第一件事情不是去环游世界")
file.close()

显示结果

4、追加文件

a模式和w模式一样,如果文件不存在,会根据路径和文件名再创建一个文件

#如果不行把原本文件中的内容清空,可以用a模式(append)表示追加
file = open("C:\\Users\\Administrator\\Desktop\\写文件.txt","a",encoding="utf-8")
file.write("在原来的文件中追加一句")
file.close()

显示结果

5、同时支持读写文件

#r+模式可以同时支持读写文件
file = open("C:\\Users\\Administrator\\Desktop\\写文件.txt","r+",encoding="utf-8")
print(file.read())
file.write("hello")
file.close()

运行结果

异常

try:
	user_height = float(input("请输入你的身高(单位:m) ->"))
	user_weight = float(input("请输入你的体重(单位:kg)->"))
	user_BMI = user_weight/(user_height**2)
except ValueError:			#产生值错误时执行
	print("请输入数字")		
except ZeroDivisionError:	#产生除零错误时执行
	print("身高不能为0")
except:						#产生其他错误时执行
	print("发生了未知错误,请重新运行程序")
else:						#没有错误时执行
	print("你的BMI指数为:" + str(user_BMI))
finally:					#不管有没有发生错误都执行
	print("程序运行结束")

测试

1、代码

def my_adder(x,y):
    return x+y
import unittest
from python1_demo import my_adder   #from 文件名 import 方法名

class TestMyAdder(unittest.TestCase):   #继承unittest.TestCase类,并且类名以Test开头
    def test_positive_with_positive(self):  #方法名以test_开头
        self.assertEqual(my_adder(5,3),8)

    def test_negative_with_positive(self):
        self.assertEqual(my_adder(-5,3),-2)
#这个命令,会自动搜索所有继承了unittest.TestCase类的子类,并运行它们所有以test_开头的方法
python -m unittest

2、代码

class ShoppingList:
    #初始化购物清单,shopping_list是字典类型,包含商品名和对应价格
    #例子:{"牙刷":5,"沐浴露":15,"电池":7}
    def __init__(self,shopping_list):
        self.shopping_list = shopping_list
    #返回购物单上有多少个商品
    def get_item_count(self):
        return len(self.shopping_list)
    #返回购物单上的商品总价
    def get_total_price(self):
        total_price = 0;
        for price in self.shopping_list.values():
            total_price = total_price + price
        return total_price
import unittest
from python1_demo import ShoppingList

class TestShoppintList(unittest.TestCase):
    def setUp(self):
        self.shopping_list = ShoppingList({"牙刷":5,"沐浴露":15,"电池":7})
    def test_get_item_count(self):
        self.assertEqual(self.shopping_list.get_item_count(),3)
    def test_get_total_price(self):
        self.assertEqual(self.shopping_list.get_total_price(),27)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值