(有c或者java基础更好上手)python基本语法大全

更适合有一定语言基础不想看python学习视频的,过一遍基本语法册就可以

  • 毕竟语言都是相同的,主要明确一下python和其他语言的不用之处和一些基本格式就可以(比如python里定义变量不用写变量类型;if和while后面要加引号,不用大括号括起来之类~)
  • 感觉python真的是很轻量级的语言,随用随写
  • 但是方便编写的同时可能也会出现一些问题,不过各个语言都有好坏~
  • 本文更适合学过c或者java的人看,展示了python日常使用中的大部分语法,看完基本可以直接上手写python了,建议复制到编辑器中方便观看(笔者懒得整理格式了==)
import math

print('hello')#字符串用单引号和双引号都是一样的

print("he said \"let\'s go\"")# \表示转义符

#python中不能随便换行,因为python是读一行执行一行的,
#遇到第一行没有结束的会直接报错

print("你好" + "服务器")

# """三个引号表示 可以将换行当成换行处理,允许换行而不是代码语句的结束
print("""君不见,黄河之水天上来,奔流到海不复回
    君不见,高堂明镜悲白发,朝如青丝暮成雪""")

#Python 中的变量赋值不需要类型声明,会自动识别
greet = "您好,吃了吗"
name = "魈"
print(greet + name)

#变量命名:只用下划线(一般)、大小写敏感
 
print(math.sin(1))#库的名字放最开头
# print(b ** 2 - 4 * a * c)

# """三引号在没有打印的情况下也可以多行注释

print(len("hello"))#字符串长度用len

print("hello"[3])

#数据类型:bool\None
print(type("hello"))#返回对象类型
print(True)#python的bool值需要大写开头

age = int(input("请输入年龄"))#输出提示信息,并且会返回输入的值
#但是要注意,input一律返回字符串,注意不要直接拿去做数学运算
after_10_year = age + 10
#数字不能和字符串一起打印,要先转化
print("知道了,你今年" + str(after_10_year)  + "岁")

is_happy = True
if is_happy:#if后面要加冒号:   不需要大括号,但是要严格缩进
    print("你很快乐~")
# elif
#python中的条件判断是可以像数学里一样的,同时左边小于和右边小于存在
weight = 61.2
height = 1.6
BMI = weight / (height) ** 2
if BMI <= 18.5:
    print("偏瘦")
elif 18.5 < BMI < 25:
    print("正常")
elif 25 < BMI < 30:
    print("偏胖")
else:
    print("肥胖")

#and or not
x = 10
x > 5 or x < 10 or x * 2 == 12

#列表,用[]
shopping_list = ["键盘", "鼠标"]
shopping_list.append("显示器")#列表中添加东西
print(shopping_list)
shopping_list.remove("显示器")
print(shopping_list)

s = "hello"#字符串是不可变的,列表是可变的
print(s.upper())#将输入的字符串全转化成大写,但是本身的s并没有变化
s = s.upper()
print(s)

#python中没有数组,只有列表list和元组tuple,
#数组是numpy库定义的,使用前要先引用
#list中数据类型不必相同,而array中的类型必须全部相同
list1 = ["hello"]#列表很灵活,可以加各种类型的
list1.append(66.6)
list1.append(True)
list1.append(None)
print(list1)
print(list1[0])
# print(max(list1))
# print(min(list1))
# print(sorted(list1))

#字典dictionary,键:值(key:value),用键来查找值,用花括号{}
#键和值之间用引号表示对应,用逗号分隔
contacts = {"小明":"172929339","小花":"173930"}
#键的类型必须是不可变的
contacts["小明"]
#元组tuple,不可变,用()
#不能添加和删除元素
#可以用于实现往字典中存入三个”张伟“——元组可以作为字典的键
example_tuple = ("键盘", "键帽")
contacts2 = {("张伟", 23):"12344445",
            ("张伟", 56):"367888865",
            ("张伟", 346):"76585858",}
zhangwei23_phone = contacts2[("张伟", 23)]
#字典可变
contacts ["美女A"] = "errtttrwr"
#判断某个值是否在字典中已经存在:键 in 字典
"小明" in contacts#会返回一个bool
del contacts["小明"]
len(contacts)
contacts.keys()#所有键
contacts.values()#所有值
contacts.items()#所有键值对

#for循环:   for 变量名 in 可迭代对象:
temperature_list = [23.6, 45.8, 34.2, 34.4, 45.1, 23.1]
for temperature in temperature_list:#for后面跟的名字无所谓,可以随便起
    if(temperature >= 38):
        print(temperature)
        print("完球了")

temperature_dict = {"111":23.6, "112":45.8, "113":34.2, "114":34.4, "115":45.1}
for staff_id, temperature in temperature_dict.items():
    if temperature >= 38:
        print(staff_id)

#range表示整数数列,range(起始值,结束值)
#结束值不在序列范围内,相当于左闭右开
for i in range(5, 10):
    print(i)
#range还可以包含第三个数表示步长(不指明时默认为1)
for i in range(5, 10, 2):
    print(i)

#while适用于条件未知时
while measure_brightness() >= 500:
    take_photo()

#python中有+=,但是没有++(因为python规定数值对象是不可变的)
#0/0在python和数学中都是不被允许的,会炸掉(写代码时要注意加个判断)坑!
# if count == 0:
#     result = 0
# else:
#     result = total / count

# \可以进行字符串换行
contacts = ["老于", "老林", "老陈", "老李", "老张"]
for name in contacts:
    message_contact = name + ":岁始之乐,点翠画柳喜开颜。\
                    云开雾散,良辰美景共团圆。祝福" + name + \
                    "及家人新年快乐,平安顺遂,虎年大吉!🧨"
    send_message(name, message_contact)

#格式化字符串——两种方法
#1.format方法
#花括号表示会被替换的位置,里面的数字表示会用format中的第几个参数进行替换
message_contact = """
律回春渐,新元肇启。
新岁甫至,福气东来。
金{0}贺岁,欢乐祥瑞。
金{0}敲门,五福临门。
给{1}及家人拜年啦!
新春快乐,{0}年大吉!
"""format(year, name)
#还可以用关键词指定替换对象
#这种情况下生肖和人名位置无所谓,只看format里的关键字
message_contact = """
律回春渐,新元肇启。
新岁甫至,福气东来。
金{current_year}贺岁,欢乐祥瑞。
金{current_year}敲门,五福临门。
给{receiver_name}及家人拜年啦!
新春快乐,{current_year}年大吉!
"""format(current_year = year, receiver_name = name)
#2.f字符串
#字符串前加前缀f,花括号里的内容会被直接求值,添加到字符串内
name = "老林"
year = "虎"
message_contact = f"""
律回春渐,新元肇启。
新岁甫至,福气东来。
金{year}贺岁,欢乐祥瑞。
金{year}敲门,五福临门。
给{name}及家人拜年啦!
新春快乐,{year}年大吉!
"""

#格式化数字
gpa_dict = {"小明":3.251, "小花":3.98, "小李":2.683, "小张":3.462}
for name in contacts:
    print("{0}你好,你的当前绩点为:{1}".format(name,gpa))
    print("{0}你好,你的当前绩点为:{1:.2f}".format(name,gpa))#还可以用:.nf指定输出时保留几位小数

#函数
def cal_sector(centra_angle, radius):
    sector_area = central_angle / 360 * 3.14 * radius ** 2
    print("此扇形面积为:{sector_area}")
    return sector_area
area = cal_sector(160, 30)
#函数要注意作用域的问题

# //表示除完后向下取整

#引入模块
#1.import语句
import statistics
print(statistics.median([19, -3, 238]))
#2.from……impor语句
from statistics import median, mean
print(median([19, 34, 90]))#使用时就可以直接用名字了
#3.from……import*语句
from statistics import*#导入模块后所有内容(不推荐,可能会与别的引入包产生命名冲突)
print(median([19,80,20]))#使用时全都不用跟模块名
#引入别人的库要先下载好别人的库

#面向对象编程(属性、方法)
#定义ATM类
class ATM:
    def __init__(self, 编号, 银行, 支行):
        self.编号 = 编号
        self.银行 = 银行
        self.支行 = 支行
#创建两个ATM对象
atm1 = ATM("001", "招商银行", "南园支行")
atm2 = ATM("002", "中国银行", "北园支行")
#封装:把内部封装起来,使使用者只通过外部接口访问和使用
#继承:面向对象编程允许创建有层次的类,有子类和父类表示从属关系
#       好处是父类的属性和方法都可以被继承,不需要反复定义
#多态:同样的接口因为对象具体类不同而有的不同表现
#eg.
# class 学生:
#     def __init__(self,学号,年级):
#         self.学号 = 学号
#         self.年级 = 年级
#     def 去学校(self, 学校):
#         ……
# class 小学生(学生):
#     def 写作业(self):
#         #写简单作业
# class 小=大学生(学生):
#     def 写作业(self):
#         #写困难作业

# 小崽子 = 小学生("0988", "小六")
# 大崽子 = 小=大学生("2344", "小三")
# 崽子们 = [大崽子, 小崽子]
# for 崽 in 崽子们:
#     崽.写作业()#会自动调用不同类中的对象

#命名对象——Pascal命名法,首字母大写
#而变量名是用下划线
class CuteCat:
    def __init__(self):
        self.name = "Amy"
cat1 = CuteCat()
print(cat1.name)

class CuteCat:
    def __init__(self, cat_name):
        self.name = cat_name
    def speak(self):#定义方法
        print("喵" * self.age)#表示把字符串重复这么多次
    def think(self, content):
        print(f"小猫{self.name}在思考{content}……")
cat1 = CuteCat("jojo")
print(cat1.name)
cat1.think("现在去抓沙发还是撕纸箱")

class Student:
    def __init__(self, name, student_id):
        self.name = name 
        self.student_id = student_id
        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.student_id})的成绩为:")
        for course in self.grades:
            print(f"{course}:{self.grades[course]}")
chen = Student("小陈","190893")
zeng = Student("小曾","23455225")
zeng.set_grade("数学", 95)
zeng.print_grades()

#继承
#父类
class Mammal:
    def __init__(self, name, sex):
        self.name = name
        self.sex = sex
        self.num_eyes = 2
    def breathe(self):
        print(self.name + "在呼吸……")
    def poop(self):
        print(self.name + "在拉屎……")
#子类继承父类——在类名后面加括号父类
class Human(Mammal):
    def __init__(self, name, sex):
        super().__init__(name, sex)#super方法会调用父类的构造函数
        self.has_tail = False
    def read(self):
        print(self.name + "在阅读……")
class Cat(Mammal):
    def __init__(self, name, sex):
        super().__init__(name, sex)
        self.has_tail = True
    def scratch_sofa(self):
        print(self.name + "在抓沙发……")
cat1  = Cat("jojo", "男")
cat1.poop()#如果子类没有父类中的方法就调父类的,如果有的化就调自己的(优先)
#if A 是 B——可以用继承    eg.人是动物——class Human(Animal)

#文件路径:
# 绝对路径:以/开头,a.py结尾
# 相对路径:(以.或者..开头,且./是可以省略的)用.表示参照文件当前所在的目录,
# ..表示更上一层的父目录,再上是../..
# 对于同一目录下的文件,如果想用相对路径找到的话,可以直接用文件名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝夕26

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值