Python的基本語法和格式規范


在開始學習之前,我們做一道題,來作為大家今天的開場白!!

Q:現有信息學號為u20201111的學生,數學成績為85,化學成績為82.46,請按下方格式輸出該信息

u20201111 的數學分數是 85

u20201111 的化學分數是 82.46

A:

uid = 'u20201111'
Math = 85
Chemistry = 82.46
Sum = Math + Chemistry

print("%s 的數學成績是 %d" %(uid,Math))
print("%s 的化學成績是 %.2f" %(uid,Chemistry))
print("%s 的總成績是 %d"%(uid,Sum))

'''
上面的小例題大家看懂了嗎?沒看懂的要親手敲一下哦~

'''

學前引導:

基本操作和格式規范(本文重點)

  • 編碼規范

  • 注釋

  • 打印

  • 格式化輸出

  • format用法

  • 轉義字符

編碼規范

國際慣例,文件編碼和 Python 編碼格式全部為 utf-8

例如:在 Python 代碼的開頭,要統一加上 # -- coding: utf-8 --。

命名規范

變量和標識符,變量和標識符在命名規則上都遵循以下原則,

  • 只能由字母、數字和下划線組成,且不能以數字開頭
  • 命名要做到見名知意:一般來說,只要是自定義的名字都可以被稱為標識符,包括變量、函數名、類名、模塊名、包名,所以變量其實只是標識符的一個子類。

變量常見的命名風格有三種:

  • 單詞全部純小寫,單詞之間使用下划線隔開,例如:data_science
  • 小駝峰式命名,第一個單詞字母全小寫,其他單詞首字母大寫,例如:dataScience
  • 大駝峰式命名,每個單詞的首字母均大寫,例如:DataScience
  • 以上這些命名規范不僅僅適用於變量,同時也適用於函數、類等;
  • 在Python中,方法和變量名一般采用第一種方式,類名采用第三種方式,第二種方式在Java聲明函數時比較常見。
  • 切記,標識符的名字不能和Python的關鍵字沖突(可以使用keyword.kwlist查看Python所有的關鍵字)

注釋

Python2-3輸出區別

Python3 使用 print 必須要以小括號包裹打印內容,比如 print('hi')

Python2 既可以使用帶小括號的方式,也可以使用一個空格來分隔打印內容,比如 print 'hi'

現在都是以python3為主

Python中單行注釋# 開頭,實例如下:

#我的第一行代碼
print('hello world') #我的第二個注釋
hello world

多行注釋可以用多個 # 號,還有 '''"""

'''
我真的
可以
注釋
很多行
'''
"""
我也能
注釋
很多行
"""
print('hello world')
hello world

格式化輸出

**拼接符 '+' **

print('變量名:'+變量)

注意:變量必須為字符串類型

拼接符','

print('變量名:',變量)

格式化符號

整數輸出:

%o —— oct 八進制

%d —— dec 十進制

%x —— hex 十六進制

print('%o' % 20)   #以八進制輸出20
print('%d' % 20)   #以十進制輸出20
print('%x' % 20)   #以十六進制輸出20

24
20
14

浮點數輸出

  • %f ——保留小數點后面六位有效數字

  %.3f,保留3位小數位

  • %e ——保留小數點后面六位有效數字,指數形式輸出

  %.3e,保留3位小數位,使用科學計數法

  • %g ——在保證六位有效數字的前提下,使用小數方式,否則使用科學計數法

  %.3g,保留3位有效數字,使用小數或科學計數法

下面做一系列的演示:

print('%f' % 1.11)  # 默認保留6位小數
print('%.1f' % 1.11)  # 取1位小數
print('%e' % 1.11)  # 默認6位小數,用科學計數法
print('%.3e' % 1.11)  # 取3位小數,用科學計數法
print('%g' % 1111.1111)  # 默認6位有效數字
print('%.7g' % 1111.1111)  # 取7位有效數字
print('%.2g' % 1111.1111)  # 取2位有效數字,自動轉換為科學計數法
1.110000
1.1
1.110000e+00
1.110e+00
1111.11
1111.111
1.1e+03

format的用法

format的用法很常見,並且實用,大家可以根據案例多進行模仿與演示。

format就是變量之間的映射,它有三種形式

  • (1)不帶編號,即“{}”
  • (2)帶數字編號,可調換順序,即“{1}”、“{2}”
  • (3)帶關鍵字,即“{a}”、“{tom}”

映射案例如下:

print('{} {}'.format('hello','world'))  # 不帶字段
print('{0} {1}'.format('hello','world'))  # 帶數字編號
print('{0} {1} {0}'.format('hello','world'))  # 打亂順序
print('{1} {1} {0}'.format('hello','world'))
print('{a} {tom} {a}'.format(tom='hello',a='world'))  # 帶關鍵字

hello world
hello world
hello world hello
world world hello
world hello world

格式化字符串

  • f-string,亦稱為格式化字符串常量(formatted string literals),是Python3.6新引入的一種字符串格式化方法。
  • f-string在形式上是以 f 或 F 修飾符引領的字符串(f'xxx' 或 F'xxx'),以大括號 {} 標明被替換的字段;
  • f-string在本質上並不是字符串常量,而是一個在運行時運算求值的表達式。

先嘗試一下str、int類型的變量

name = "小風"
age = 18
print(f"姓名:{name},年齡:{age}")
姓名:小風,年齡:18

再試一下字典

one_dict = {"name": "小風", "age": 18, "hobby": ["running", "singing"]}
print(f"姓名:{one_dict['name']},愛好:{one_dict['hobby']}")
姓名:小風,愛好:['running', 'singing']

格式規范:

代碼塊快捷鍵:CTRL+ALT+L

轉義字符

轉義字符‘\’可以轉義很多字符

  • ‘\n’表示換行
  • ’\t‘表示制表符
  • 字符’\‘本身也要轉義,所以‘\’表示的字符就是‘\’

下面為‘\’在輸出過程中可能出現的情況;

print('I\'m ok.')
I'm ok.
print('I\'m learning\nPython.')
I'm learning
Python.
print('\\\n\\')

小作業

  • 1、學號為u20201111的學生,數學成績為85,化學成績為82.46,按格式輸出:

    u20201111 的數學分數是 85

    u20201111 的化學分數是 82.46

    並且求出該學號學生的總成績,以及平均分

  1. 2、給定兩個整數AB,輸出從AB的所有整數以及這些數的和。

    輸入格式:

    輸入在一行中給出2個整數AB,其中−100≤AB≤100,以空格分隔。

    輸出格式:

    首先順序輸出從AB的所有整數,每5個數字占一行,每個數字占5個字符寬度,向右對齊。最后在一行中按Sum = X的格式輸出全部數字的和X。

  2. 3、給定學生三門成績

    (1)計算該學生的平均成績並打印平均成績保留兩位小數點

    (2)計算該學生語文成績占總成績的百分之多少?並打印,百分比也保留兩位小數

    Chinese = 92
    Math = 98.5
    English = 93
    
  3. 4、用轉義字符,輸出一張todo list,包含4條內容並用制表符對齊。格式如下:

    This is todo list for today:
            * Meeting at 11:00
            * lunch with Mike
            * buy milk
            * do yoga
    
  4. 5、分別用多種格式輸出,答案不限,輸入參數為like,learning:I like Python, and I'am learning(注意上引號)

進階題:

編輯完成以下名片的顯示:

==================================
姓名: 努力賺錢的小風    
QQ:xxxxxxx
手機號:185xxxxxx
公司地址:北京市xxxx
Blog:www.a2data.cn
==================================

#思考,如何格式化輸出?換行?
#進階思路,如果姓名年齡是否可以是變量傳入,或者外部輸入呢?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM