Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 三级视频中文字幕,久久窝窝国产精品午夜看15,午夜国产情侣拍视频

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Python自動化之Python輸入函數、轉義字符

          Python自動化之Python輸入函數、轉義字符

          擊上方頭像關注我,每周上午 09:00準時推送,每月不定期贈送技術書籍。


          本文1210字,閱讀約需4分鐘


          Hi,大家好,我是胖虎。在上一篇Python自動化測試系列文章:Python自動化之Python輸出函數,主要介紹python輸出函數print的詳細用法。


          今天我們主要介紹Python中的輸入函數、轉義字符的含義、作用及具體實例。




          input輸入函數


          input函數介紹


          input函數是Python的內置函數, 用來接收用戶輸入的內容。


          input函數源碼



          input函數接收用戶輸入的信息, 然后返回字符串類型信息。


          input實例


          實例1:


          運行后,在控制臺輸入字符:


          實例2:

          gf=input('女:')
          bf=input('男:')
          gf=input('女:')

          在控制臺輸入字符:




          轉義字符


          什么是轉義字符?


          簡單來說, 反斜杠+需要轉義的字符。


          為什么需要轉義字符?


          用普通字符無法表達出特殊字符的含義,需要進行轉義。


          常用的轉義字符


          列舉下常用的轉義字符:


          轉義字符實例


          實例1:

          有時我們輸入的字符需要換行展示,可以在行尾加上\


          輸出結果為:

          hello,終于等到你,歡迎關注ITester軟件測試小棧


          實例2:

          雙引號的轉義字符為 \"


          輸出結果為:

          ITester軟件測試小棧("coco")


          實例3:

          制表符的轉義字符為 \t


          實例4:

          換行符的轉義字符為 \n, 這個我們在上一篇文章print函數用法的時候介紹過。


          print結尾默認是\n即換行符。


          實例5:

          顏色控制的轉義字符為3


          輸出結果為:


          以上就是今天的全部內容,希望對大家有所幫助,也希望大家多多?? 支持。 咱們下篇文章見,Bye~




          以上


          That‘s all

          更多系列文章

          敬請期待




          ITester軟件測試小棧(ID:ITestingA),專注于軟件測試技術和寶藏干貨分享,每周準時更新原創技術文章,每月不定期贈送技術書籍,愿我們在更高處相逢。喜歡記得星標?我,每周及時獲得最新推送,第三方轉載請注明出處。


          想獲取更多最新干貨內容

          快來星標 置頂 關注


          天學習的是劉金玉老師零基礎Python教程第21-22期,主要內容是python編程字符串轉義與拼接。

          一、python編程字符串轉義與拼接

          (一)什么是字符串?

          字符串:可以理解成一串文本或者多個字符的組合。

          (二)用什么來表示字符串?

          符號1:單引號括起來'字符串內容'

          符號2:雙引號括起來“字符串內容”

          (三)字符串的賦值

          給某個變量賦值為字符串類型,所有的變量第二次賦值的時候會覆蓋前一次賦的值。通過單引號或者雙引號單獨或者嵌套給變量賦值,賦值的時候同時使用多次單引號或者雙引號需使用轉義符來轉義重復使用的單引號或者雙引號。

          (四)字符串的轉義

          轉義符\后面跟上單引號或者雙引號,可以直接輸出單引號或者雙引號。

          \"會被解析成"

          \'會被解析成'

          \n會被解析成換行

          二、編程注釋

          (一)單行注釋:寫在需要注釋的代碼最后,使用#連接注釋的內容即可。比如:# 這是注釋內容

          (二)多行注釋:寫在需要注釋的多行代碼前,使用英文狀態下的3個單引號或雙引號隔開即可。比如:

          '''

          軟件開發者:四川二流子

          軟件開發時間:2021年5月6日

          '''

          """

          ava 14預定于3月17日發布。那么,14版究竟有什么新功能,對于整天寫代碼、維護代碼的Java開發者來說,哪些功能最有用呢?

          作者 | Raoul-Gabriel Urma

          譯者 | 彎月,責編 | 郭芮

          出品 | CSDN(ID:CSDNnews)

          以下為譯文:

          第14版包含的JEP(Java Enhancement Proposals,Java增強提案)比12版和13版加起來還要多。在這篇文章中,我將主要討論以下幾點:

          • 改進的switch表達式,第一次出現在Java 12和13中,在Java 14中獲得了完全的支持

          • instanceof支持模式匹配(語言特性)

          • PointerException(JVM特性)

          希望你在閱讀完本文后,積極地代碼中實驗這些功能,為Java團隊提供反饋,并為Java的發展做出貢獻。

          Switch表達式

          Java 14中的switch表達式將會永久存在。如果你需要回憶一下什么是switch表達式,可以參考下以前這兩篇文章(https://blogs.oracle.com/javamagazine/new-switch-expressions-in-java-12,https://blogs.oracle.com/javamagazine/inside-java-13s-switch-expressions-and-reimplemented-socket-api)。

          在之前的發布中,switch表達式只是一個“預覽”階段的特性。我想提醒一下,“預覽”階段的特性的目的是為了收集反饋,這些特性可能會隨時改變,根據反饋結果,這些特性甚至可能會被移除,但通常所有預覽特性最后都會在Java中固定下來。

          新的switch表達式的優點是,不再有缺省跳過行為(fall-through),更全面,而且表達式和組合形式更容易編寫,因此出現bug的可能性就更低。例如,switch表達式現在可以使用箭頭語法,如下所示:

          var log=switch (event) { case PLAY -> "User has triggered the play button"; case STOP, PAUSE -> "User needs a break"; default -> { String message=event.toString; LocalDateTime now=LocalDateTime.now; yield "Unknown event " + message +  " logged on " + now; }};

          文本塊

          Java 13引入的一個預覽功能是文本塊。有了文本塊,多行的字符串字面量就很容易編寫了。這個功能在Java 14中進行第二次預覽,而且發生了一些變化。例如,多行文本的格式化可能需要編寫許多字符串連接操作和轉義序列。下面的代碼演示了一個HTML的例子:

          String html="<HTML>" +"\n\t" + "<BODY>" +"\n\t\t" + "<H1>\"Java 14 is here!\"</H1>" +"\n\t" + "</BODY>" +"\n" + "</HTML>";

          有了文本塊,就可以簡化這一過程,只需使用三引號作為文本塊的起始和結束標記,就能編寫出更優雅的代碼:

          String html="""<HTML> <BODY> <H1>"Java 14 is here!"</H1> </BODY></HTML>""";

          與普通的字符串字面量相比,文本塊的表達性更好。更多的內容可以參考這篇文章(https://blogs.oracle.com/javamagazine/text-blocks-come-to-java)。

          Java 14引入了兩個新的轉義序列。第一,可以使用新的 \s 轉義序列來表示一個空格。第二,可以使用反斜杠 \ 來避免在行尾插入換行字符。這樣可以很容易地在文本塊中將一個很長的行分解成多行來增加可讀性。

          例如,現在編寫多行字符串的方式如下:

          String literal= "Lorem ipsum dolor sit amet, consectetur adipiscing " + "elit, sed do eiusmod tempor incididunt ut labore " + "et dolore magna aliqua.";

          在文本塊中使用 \ 轉義序列,就可以寫成這樣:

          String text=""" Lorem ipsum dolor sit amet, consectetur adipiscing \ elit, sed do eiusmod tempor incididunt ut labore \ et dolore magna aliqua.\ """;

          instanceof的模式匹配

          Java 14引入了一個預覽特性,有了它就不再需要編寫先通過instanceof判斷再強制轉換的代碼了。例如,下面的代碼:

          if (obj instanceof Group) { Group group=(Group) obj;
          // use group specific methods var entries=group.getEntries;}

          利用這個預覽特性可以重構為:

          if (obj instanceof Group group) { var entries=group.getEntries;}

          由于條件檢查要求obj為Group類型,為什么還要像第一段代碼那樣在條件代碼塊中指明obj為Group類型呢?這可能會引發錯誤。

          這種更簡潔的語法可以去掉Java程序里的大多數強制類型轉換。(2011年的一篇針對相關語言特性的研究論文(http://www.cs.williams.edu/FTfJP2011/6-Winther.pdf)指出,24%的類型轉換都來自于instanceof后的條件語句。)

          JEP 305解釋了這項改變,并給出了Joshuoa Bloch的著作《Effective Java》中的一個例子,演示了下面兩種等價的寫法:

          @Override public boolean equals(Object o) {  return (o instanceof CaseInsensitiveString) &&  ((CaseInsensitiveString) o).s.equalsIgnoreCase(s); }

          這段代碼嗎中冗余的CaseInsensitiveString強制類型轉換可以去掉,轉換成下面的方式:

          @Override public boolean equals(Object o) {  return (o instanceof CaseInsensitiveString cis) && cis.s.equalsIgnoreCase(s); }

          這個預覽特性很值得嘗試,因為它打開了通向更通用的模式匹配的大門。模式匹配的思想是為語言提供一個便捷的語法,根據特定的條件從對象中提取出組成部分。這正是instanceof操作符的用例,因為條件就是類型檢查,提取操作需要調用適當的方法,或訪問特定的字段。

          換句話說,該預覽功能僅僅是個開始,以后該功能肯定能夠減少更多的代碼冗余,從而降低bug發生的可能性。

          Record

          另一個預覽功能就是record。與前面介紹的其他預覽功能一樣,這個預覽功能也順應了減少Java冗余代碼的趨勢,能幫助開發者寫出更精準的代碼。Record主要用于特定領域的類,它的位移功能就是存儲數據,而沒有任何自定義的行為。

          我們開門見山,舉一個最簡單的領域類的例子:BankTransaction,它表示一次交易,包含三個字段:日期,金額,以及描述。定義類的時候需要考慮多個方面:

          • 構造器

          • getter方法

          • toString

          • hashCode和equals

          這些部分的代碼通常由IDE自動生成,而且會占用很大篇幅。下面是生成的完整的BankTransaction類:

          public class BankTransaction { private final LocalDate date; private final double amount; private final String description;

          public BankTransaction(final LocalDate date, final double amount, final String description) { this.date=date; this.amount=amount; this.description=description; }
          public LocalDate date { return date; }
          public double amount { return amount; }
          public String description { return description; }
          @Override public String toString { return "BankTransaction{" + "date=" + date + ", amount=" + amount + ", description='" + description + '\'' + '}'; }
          @Override public boolean equals(Object o) { if (this==o) return true; if (o==|| getClass !=o.getClass) return false; BankTransaction that=(BankTransaction) o; return Double.compare(that.amount, amount)==0 && date.equals(that.date) && description.equals(that.description); }
          @Override public int hashCode { return Objects.hash(date, amount, description); }}

          Java 14提供了一種方法可以解決這種冗余,可以更清晰地表達目的:這個類的唯一目的就是將數據整合在一起。Record會提供equals、hashCode和toString方法的實現。因此,BankTransaction類可以重構如下:

          public record BankTransaction(LocalDate date, double amount, String description) {}

          通過record,可以“自動”地得到equals,hashCode和toString的實現,還有構造器和getter方法。

          要想嘗試這個例子,需要用preview標志編譯該文件:

          javac --enable-preview --release 14 BankTransaction.java

          record的字段隱含為final。因此,record的字段不能被重新賦值。但要注意的是,這并不代表整個record是不可變的,保存在字段中的對象可以是可變的。

          如果你有興趣閱讀更多關于record的內容,可以閱讀Ben Evans最近在《Java Magazine》上發表的文章(https://blogs.oracle.com/javamagazine/records-come-to-java)。

          請繼續關注該功能。從培養新一代的Java開發者的視角來看,Record也很有意思。例如,如果你要培養初級開發者,那么record應該什么時候講呢?是在講OOP之前還是之后?

          PointerException

          一些人認為,拋出PointerException異常應該當做新的“Hello World”程序來看待,因為PointerException是早晚會遇到的。玩笑歸玩笑,這個異常的確會造成困擾,因為它經常出現在生產環境的日志中,會導致調試非常困難,因為它并不會顯示原始的代碼。例如,如下代碼:

          var name=user.getLocation.getCity.getName;

          在Java 14之前,你可能會得到如下的錯誤:

          Exception in thread "main" java.lang.PointerException at PointerExample.main(PointerExample.java:5)

          不幸的是,如果在第5行是一個包含了多個方法調用的賦值語句(如getLocation()和getCity()),那么任何一個都可能會返回。實際上,變量user也可能是。因此,無法判斷是誰導致了PointerException。

          在Java 14中,新的JVM特性可以顯示更詳細的診斷信息:

          Exception in thread "main" java.lang.PointerException: Cannot invoke "Location.getCity" because the return value of "User.getLocation" is  at PointerExample.main(PointerExample.java:5)

          該消息包含兩個明確的組成部分:

          • 后果:Location.getCity無法被調用

          • 原因:User.getLocation的返回值為

          增強版本的診斷信息只有在使用下述標志運行Java時才有效:

          -XX:+ShowCodeDetailsInExceptionMessages

          下面是個例子:

          java -XX:+ShowCodeDetailsInExceptionMessages PointerExample

          在以后的版本中,該選項可能會成為默認。

          這項改進不僅對于方法調用有效,其他可能會導致PointerException的地方也有效,包括字段訪問、數組訪問、賦值等。

          總結

          Java 14提供了幾個新的預覽版語言特性和更新,能很好地幫助開發者完成日常工作。Java 14還引入了record,這是一種創建精確數據類的新方法。此外,PointerException的消息經過了改進,能顯示明確的診斷信息。switch表達式也成了Java 14的一部分。文本塊功能可以幫你處理多行字符串,這是在引入了兩個新的轉義序列之后的另一預覽功能。還有一項改動就是JDK Flight Recorder的事件流。

          可見,Java 14帶來了許多創新。你應該嘗試一下這些功能,然后反饋給Java的開發團隊。

          原文:https://blogs.oracle.com/javamagazine/java-14-arrives-with-a-host-of-new-features

          本文為 CSDN 翻譯,轉載請注明來源出處。


          主站蜘蛛池模板: 一区二区三区免费看| 99国产精品欧美一区二区三区| 久久国产精品免费一区| 消息称老熟妇乱视频一区二区| 精品久久综合一区二区| 久久精品一区二区三区不卡| 成人精品一区二区三区电影| 久久91精品国产一区二区| 国产成人精品a视频一区| 精品无码国产一区二区三区51安 | 国产日本一区二区三区| 亚洲线精品一区二区三区 | 国产一区二区精品久久| 国产亚洲福利一区二区免费看| 国产日本亚洲一区二区三区| 亚洲国产美国国产综合一区二区 | 亚洲欧美日韩一区二区三区 | 亚洲国产美国国产综合一区二区| 无码AV动漫精品一区二区免费 | 亚洲视频在线一区二区| 国模一区二区三区| 国产精品无码一区二区在线| av无码免费一区二区三区| 亚洲国产精品自在线一区二区| 亚洲av无码一区二区乱子伦as| 国产成人无码AV一区二区 | 亚洲一区在线免费观看| 久久综合亚洲色一区二区三区| 精品亚洲综合在线第一区| 91福利国产在线观看一区二区| 99久久精品国产高清一区二区 | 亚欧免费视频一区二区三区| 国产精品综合一区二区三区| 亚洲综合av一区二区三区| 国产精品美女一区二区三区| 高清一区二区三区视频| 中文字幕精品一区二区精品| 精品无码国产一区二区三区AV | 日本视频一区二区三区| 国产成人精品一区二三区| 国模精品一区二区三区视频|